Jonny 5: Reguläre Ausdrücke: Nur außerhalb von HTML-Tags ersetzen

Beitrag lesen

Hi,

Es soll das Wort "PHP" verlinkt werden.

Zunächst 3 Teilstrings:

  1. <img src="img.jpg" alt="PHP ist toll" />
  2. <a href="http://www.php.net">Zur PHP Seite</a>
  3. Dies ist ein Test mit PHP usw.

Hier soll in den ersten beiden fällen das Wort PHP nicht ersetzt werden, sondern nur im dritten Fall.

Vielleicht möchtest du das Vorkommen des Suchstrings, ja nur in bestimmten Tags ersetzen, zb etwa so:

$find="welt";
$test="ging <span>in die weite welt hinein</span>, blablu";

$tags='span|div|p|td';
$pattern='/(<('.$tags.')[^>]*>[^<]*)('.$find.'\b)([^<]*</\2>)/i';
$replace='\1<a href="#">\3</a>\4';

echo preg_replace($pattern,$replace,$test);

herzliche Grüße,
Jonny 5