Mailinglisten-Archive |
Hallo Yannik, danke für deine Mühe. Habe mittlerweile den Holzhammer raus geholt und das Ganze anders aufgezogen: ------------------------------------------------------------------------ preg_match_all( '=(http:|https:)//[^ )\r\n!<"\']++=i', $htmlBody, $linkList ); $linkList = array_unique($linkList[0]); if (count($linkList) > 0) { foreach ($linkList as $key => $link) { if (preg_match_all( '^<a(.*)' . $link . '(.*)>(.*)</a>^iU', $htmlBody, $linkListSingle )) { continue; } $htmlBody = str_replace( $link, '<a href="' . $link . '">' . $link . '</a>', $htmlBody ); } } ------------------------------------------------------------------------ D.h. zuerst werden alle Links gefunden, die mit http oder https beginnen. Danach wird dann für jeden einzelnen Link geprüft, ob er sich innerhalb eines <a> Tags befinden. Wenn nein, wird er ersetzt. Ansonsten eben nicht. Performancemäßig ist das sicherlich auch suboptimal, aber es funktioniert. Sogar bei sowas Ekelhaftem wie ein OnClick, um ein Popup zu öffnen... Danke und Gruss, Ralf
php::bar PHP Wiki - Listenarchive