Liebe(r) Reto,
- Finde das erste Vorkommen mit http://php.net/manual/de/function.strpos.php
- Ersetze das erste <p> durch einen Platzhalter <platzhalter_p>
- Finde das erste Vorkommen (strpos)
mit einem passenden Suchmuster ginge das mit einem einzigen preg_replace()
:
$insert = '<a>Link</a>';
$html = preg_replace(
'~(.*?<p>.*?)(<p)~',
'$1'.$insert.'$2',
'<div><p>Trallala</p><p>Fidirallalla</p></div>'
);
// $html = <div><p>Trallala</p><a>Link</a><p>Fidirallalla</p></div>
In den runden Klammern notierte Muster "merkt" sich preg_replace()
, wobei jedes Klammernpaar durchnummeriert wird, beginnend mit 1. Daher kann man mit der Zeichenfolge $1
oder auch \1
auf den gefundenen Inhalt Bezug nehmen, der zum Muster in der ersten Klammer passt. Analog geht das auch mit dem Inhalt zum zweiten Muster mit $2
bzw. \2
.
Liebe Grüße,
Felix Riesterer.