dertypdernixkan
New member
Abend
Jemand hier der sich mit Regex auskennt?
Es geht um folgendes: ich habe eine Funktion die URLs erkennen und entsprechen als Link ausgeben soll solange es sich dabei nicht um ein iframe oder javascript handelt.
Die Funktion soll später, bzw. macht sie das jetzt schon, Bilder und Video-URLs erkennen, funktioniert auch. Nur ist mir jetzt aufgefallen, dass wenn eine URL zweimal von derselben Domain vorkommt, zerhaut es die Links. Und ich finde den Fehler nicht!
Hier mal das wichtigste der Funktion
Kann mir da jemand weiterhelfen?
Jemand hier der sich mit Regex auskennt?
Es geht um folgendes: ich habe eine Funktion die URLs erkennen und entsprechen als Link ausgeben soll solange es sich dabei nicht um ein iframe oder javascript handelt.
Die Funktion soll später, bzw. macht sie das jetzt schon, Bilder und Video-URLs erkennen, funktioniert auch. Nur ist mir jetzt aufgefallen, dass wenn eine URL zweimal von derselben Domain vorkommt, zerhaut es die Links. Und ich finde den Fehler nicht!
Hier mal das wichtigste der Funktion
PHP:
<?php
function findUrl($str) {
$backlink = "";
$url = preg_match_all('@(?<![.*">])\b(?:(?:http|https|ftp|ftps)://|[a-z]\.)([-A-Z0-9+&#/%=~_|$?!:,.]*[A-Z0-9+&#/%=~_|$])@i', $str, $match);
for ($i = 0; $i < $url; $i++) {
$backlink = '<a class="extern" href="'.$match[0][$i].'">'.$match[0][$i].'</a>';
$str = str_ireplace($match[0][$i], $backlink, $str);
}
return $str;
}
#$str = 'https://www.facebook.com/ https://www.facebook.com/irgendwer'; // erster Link ginge, der zweite sähe so aus <a href="https://www.facebook.com/">https://www.facebook.com/</a>irgendwer
#$str = 'http://www.meineseite.tld/ http://www.meineseite.tld/irgendwer'; // selbes Spiel wie bei den FB-Adressen
#$str = 'https://www.facebook.com/irgendwer http://www.meineseite.tld/irgendwer'; // dieses jedoch gibt einen Link zu FB als auch einen zu meineseite.tld aus
// der Aufrufecho
findUrl($str);
Kann mir da jemand weiterhelfen?
Zuletzt bearbeitet von einem Moderator: