Hallo liebes Forum,
ich habe mir an einem Problem die Zähne ausgebissen und weiß momentan leider nicht weiter. Es handelt sich um folgendes Problem:
Ich habe einen Text, der aus z.B. 20 Sätzen und einigen sonstigem Inhalt wie HTML Code oder javascript besteht. Dieser Text wird in der Variable $content gespeichert. Daraufhin unterteile ich den text in Sätze (mittels Regex). Die einzelnen Sätze sind dann im Array $sentences gespeichert.
Nun soll jeder Satz so aufbereitet werden, dass vor und nach dem jeweiligen Satz eine Markierung eingefügt wird, z.B. am anfang \\satz1\\ und //satz1//.
Diese aufbereiteten Sätze werden im array $replacements gespeichert. Bis hierhin funktioniert mein skript.
Nun aber möchte ich alle Sätze, die in $content gefunden wurden, durch die aufbereiteten sätze ersetzen. Das versuche ich über preg_replace($sentences, $replacements, $content). Das funktioniert aber leider nicht. Irgendwas läuft hier schief.
Ich habe auch schon versucht, anstatt mit obiger preg_replace-Anweisung mit preg_replace($patterns, $replacements, $content) zu arbeiten, wobei im Array $patterns nun die Sätze stehen und ihnen vorn und hinten ein delimiter "/" angefügt ist. Aber auch das funktioniert nicht.
Kann mir jmd weiterhelfen?
Hier ist mein Code im Orginal:
Kann mir jmd helfen, das Problem zu lösen? Irgendwie komme ich hier nicht weiter.
Vielen Dank.
Grüße, Tobi
ich habe mir an einem Problem die Zähne ausgebissen und weiß momentan leider nicht weiter. Es handelt sich um folgendes Problem:
Ich habe einen Text, der aus z.B. 20 Sätzen und einigen sonstigem Inhalt wie HTML Code oder javascript besteht. Dieser Text wird in der Variable $content gespeichert. Daraufhin unterteile ich den text in Sätze (mittels Regex). Die einzelnen Sätze sind dann im Array $sentences gespeichert.
Nun soll jeder Satz so aufbereitet werden, dass vor und nach dem jeweiligen Satz eine Markierung eingefügt wird, z.B. am anfang \\satz1\\ und //satz1//.
Diese aufbereiteten Sätze werden im array $replacements gespeichert. Bis hierhin funktioniert mein skript.
Nun aber möchte ich alle Sätze, die in $content gefunden wurden, durch die aufbereiteten sätze ersetzen. Das versuche ich über preg_replace($sentences, $replacements, $content). Das funktioniert aber leider nicht. Irgendwas läuft hier schief.
Ich habe auch schon versucht, anstatt mit obiger preg_replace-Anweisung mit preg_replace($patterns, $replacements, $content) zu arbeiten, wobei im Array $patterns nun die Sätze stehen und ihnen vorn und hinten ein delimiter "/" angefügt ist. Aber auch das funktioniert nicht.
Kann mir jmd weiterhelfen?
Hier ist mein Code im Orginal:
PHP-Code:
$content = file_get_contents($url);
$sentences = preg_split('/\. /', $content); // Match auf einen Punkt gefolgt von Leerzeichen
for($x =0; $x < count($sentences); $x++) {
$sentences[$x] = $sentences[$x] . ". "; // -> Punkt wieder an Satzende anhängen
}
// Replacements erzeugen
$replacements = array();
for($x =0; $x < count($sentences); $x++) {
$replacements[$x] = "--text" . $x . "--" . $sentences[$x] . "---text" . $x . "---";
}
// Suchmuster erzeugen
$patterns = array();
for($x = 0; $x < count($sentences); $x++) {
$patterns[$x] = "/".$sentences[$x]."/";
}
// replacements in Dateiinhalt einspielen
$content = preg_replace($patterns, $replacements, $content);
Vielen Dank.
Grüße, Tobi
Kommentar