Herzlich willkommen im Archiv vom ABAKUS Online Marketing Forum
Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.
Ja, leider erstelle ich nicht den Content und deswegen kann ich mich auf sollte nicht verlassen, danke. Hab da aber auch schon was ansatzweise, wo noch die feinheiten fehlen programmiert.Links sollten diese Leerzeichen
Code: Alles auswählen
$string = 'Dies ist ein Text. Aber <a href="sdsds">Text</a> darf nicht ersetzt werden. Nur der Text also.';
echo $string.'<br />';
$suchwort = 'Text';
$string2 = preg_replace( '='. $suchwort .'(?!</a>)=', '<a href="123.html">'. $suchwort .'</a>', $string );
echo $string2;
Code: Alles auswählen
<a href="sdsds">Text</a>
Nunja, ich habe mal versucht, das ganze etwas anders zu lösen. Mein Gedanke war, man müsste erstmal alle Links raus nehmen, das gesuchte Wort dann suchen und ersetzen, und dann wieder alle vorher entfernten Links im String wieder einfügen.Ja, leider erstelle ich nicht den Content und deswegen kann ich mich auf sollte nicht verlassen
Code: Alles auswählen
$string = '
Das ist eine Test-Zeile mit <a href="#">Test</a>, einen Test mit Test im
Link <a href="#">Test</a> mit Wort Test und <a href="#">Test</a>.
';
function set_replace($suchwort, $string) {
preg_match_all('~<a.*?>.*?</a>~ism', $string, $array_links, PREG_OFFSET_CAPTURE);
$string_len = 0;
for ($i = 0; $i < count($array_links[0]); $i++ )
{
$array_suche[$i] = $array_links[0][$i][0];
$array_ersatz[$i] = '[link'.$i.']';
$string = substr_replace(
$string,
$array_ersatz[$i],
$array_links[0][$i][1] - $string_len, strlen($array_links[0][$i][0]) );
$string_len += strlen($array_links[0][$i][0]) - strlen($array_ersatz[$i]);
}
$string = preg_replace('~[^\[]'.$suchwort.'[^\d+\]]~', ' <a href="#">'.$suchwort.'</a> ', $string);
return str_replace($array_ersatz, $array_suche, $string);
}
echo set_replace('Test', $string);