phpbar.de logo

Mailinglisten-Archive

[php] Regex zum Suchen und Ersetzen gesucht

[php] Regex zum Suchen und Ersetzen gesucht

Simon Bienlein s.bienlein at gmx.de
Mon Aug 28 15:58:53 CEST 2006


Hallo Lutz,

> warum nimmst Du nicht str_replace()? :-)

weil ich mit dieser Funktion IMHO nicht nach einem alleinstehenden Wort
suchen kann: Milligramm wird mit mg abgekürzt. Würde ich mittels
str_replace() mg durch den Link ersetzen, würde der Link
fälschlicherweise auch im Wort Umgebung eingefügt werden.

Da meine Anlage nicht richtig übertragen wurde, füge ich den PHP-Code
hier ein.

Schöne Grüße
von Simon
-----
<?php
$words = array('BND', 'DSL', 'FTP', 'MAD', 'RTL', 'z. B.');

$text = 'Schwierigkeiten treten z. B. bei folgenden Sätzen auf:
FDP und Grüne wollen in der BND-Affäre nun auch den Militärischen
Abschirmdienst (MAD) und den Verfassungsschutz ins Visier nehmen.
T-DSL ist in vielen Anschlussbereichen verfügbar.
Der Werbe-Slogan lautet: "Mein RTL".
';

echo "<h2>Ausgangstext</h2>\n<p>$text</p>\n";
echo "<h2>Gesuchte Abkürzungen</h2>\n";
echo "<ul>";
foreach ($words as $word) {
 echo "\n\t<li>$word</li>";
 $search = preg_quote($word);
 $search = '`(\W)('.$search.')(\W)|^('.$search.')(\W)`U';
 $replace = '<a href="#">'.$word.'</a>';
 $substitutions .= "\n\t<li>".htmlentities($search).'<br
/>'.htmlentities($replace).'</li>';
 $text = preg_replace($search, $replace, $text);
}
echo "\n</ul>\n";

echo "<h2>Bearbeiteter Text</h2>\n<p>$text</p>\n";
echo "<h2>So wurde gesucht und ersetzt</h2>\n<ul>$substitutions\n</ul>";
?>



php::bar PHP Wiki   -   Listenarchive