Jag har ett skript som omvandlar en textfil med ett frågesportsutkast som är lättläst för folk, till ett format som är lättare att behandla för datorn. Enligt nedan:
$txtStr = file_get_contents($filnamn);
$txtStr = preg_replace("/\n[\d]+\)/", "::Q::\n", $txtStr);
$txtStr = preg_replace("/\* |# /", "#A#\n", $txtStr);
$txtStr = str_replace("/:::/", "\n%%%", $txtStr);
echo nl2br("$txtStr");
Det sista str_replace:t vill inte! Varför?
Den fil jag läser in (eller snarast en dummyfil som har samma format och beter sig likadant, men är åtskilligt kortare):
Vad geter Hans syster?
* Greta ::: 1
* Klara
* AnnaI vad bor häxan?
* En hatt.
* Ett pepparkakshus. ::: 1
* En jordkula.
Resulterar i:
::Q::
Vad geter Hans syster?
#A#
Greta ::: 1
#A#
Klara
#A#
Anna::Q::
I vad bor häxan?
#A#
En hatt.
#A#
Ett pepparkakshus. ::: 1
#A#
En jordkula.
Men VARFÖR i fridens namn utförs inte sista str_replace:t??? :q 'xxx :::' borde ju bli
'xxxx
%%%' eller? Vad är det jag inte ser???