Mailinglisten-Archive |
Kurze Frage: Warum löschst du nicht einfach alles Links im Format <a ..>...</a> und suchst dann alle neu raus?^^ Grüße Robert -----Ursprüngliche Nachricht----- Von: php-bounces at phpbar.de [mailto:php-bounces at phpbar.de] Im Auftrag von Ralf Eggert Gesendet: Freitag, 16. April 2010 11:26 An: deutschsprachige PHP-Mailingliste Betreff: Re: [php] Alle noch nicht anklickbaren Links anklickbar machen 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 -- ** Allgemeine deutschsprachige PHP-Liste: php at phpbar.de ** Informationen: http://www.phpbar.de http://lists.phpbar.de/mailman/listinfo/php
php::bar PHP Wiki - Listenarchive