URL: https://www.overclockers.at/coding-stuff/php_urls_parsen_a_la_vbulletin_135033/page_1 - zur Vollversion wechseln!
hab jetz eine regexpression mit der ich urls parsen kann wie bei den meisten ubb bords also URL in eckigen klammern. habs allerdings noch nicht hinbekommen, dass auch gleichzeitig überlange urls mit „…“ abgekürzt werden. da ich leider keinen vbulletin source zur verfügung habe, vielleicht könnte wer den codeabschnitt posten wie das am besten gelöst wird.
der code is ansich via (c) geschuetzt kann also nicht einfach so gepostet werden
aber die loesung ist denkbar einfach
du hast ja im regex_replace den fetch der url
(backreferences) http://at.php.net/preg_replace
und du kannst den replace code durch eine funktion leiten
(Using the 'e' modifier) http://at.php.net/preg_replace
dort kannst du um bei einem one-liner zu bleiben ternaere if operatoren verwenden (strlen({url}) > maxlength)?substr(.....):{url}
verstaendlich?
also mein code schaut im moment so aus (vereinfacht aus der klasse rausgerissen; hab auch ein paar leerzeichen reingeschmissen damit das board nicht den text „zerparst“):
Code: PHP$string = 'sl ala gehts [ URL]http://example.com/with_a_very_long_dir/and_another_long_dir[/URL ]'; echo preg_replace('#\[ url\](http|https|ftp)://(.+?)\[/ url\]#i', '<a href="\\1://\\2" target="_blank">\\1://\\2</a>', $string);
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026