[PHP] RegEx Bbcode URL extrahieren

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • [PHP] RegEx Bbcode URL extrahieren

    Hallo zusammen,

    ich habe hier zwei BBCodes, aus denen die URL extrahiert werden soll. Der erste sieht so aus:

    Quellcode

    1. [img]http://stats.share-links.biz/0116ce0715762d93a1a838b024558862.gif[/img] [url=http://share-links.biz/_rcyx64n3hdej] download via uploaded.net[/url]


    Es soll die URL und die Image-URL extrahiert werden:
    share-links.biz/_rcyx64n3hdej
    stats.share-links.biz/0116ce0715762d93a1a838b024558862.gif

    Das funktioniert ohne Probleme mit diesem Code
    URL

    Quellcode

    1. // URLs
    2. $url_pattern[] = "#\[url\]((www)\.([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/url\]#is";
    3. $url_replacement[] = "$1";
    4. $url_pattern[] = "#\[url\]([\w]+?://([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/url\]#is";
    5. $url_replacement[] = "$1";
    6. $url_pattern[] = "#\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
    7. $url_replacement[] = "$1";
    8. $url_pattern[] = "#\[url=((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
    9. $url_replacement[] = "$1";
    10. $img_pattern[] = "#\[img\]((www)\.([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/img\]#is";
    11. $img_replacement[] = "";
    12. $img_pattern[] = "#\[img\]([\w]+?://([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/img\]#is";
    13. $img_replacement[] = "";
    14. $img_pattern[] = "#\[img=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/img\]#is";
    15. $img_replacement[] = "";
    16. $img_pattern[] = "#\[img=((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/img\]#is";
    17. $img_replacement[] = "";
    18. $image_download_url_ausgabe = $image_row['image_download_url7'];
    19. $image_download_url_exit = preg_replace($url_pattern, $url_replacement, $image_download_url_ausgabe);
    20. $image_download_url_clean = preg_replace($img_pattern, $img_replacement, $image_download_url_exit);
    Alles anzeigen


    Image

    Quellcode

    1. $dlstatus_url_pattern[] = "#\[url\]((www)\.([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/url\]#is";
    2. $dlstatus_url_replacement[] = "";
    3. $dlstatus_url_pattern[] = "#\[url\]([\w]+?://([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/url\]#is";
    4. $dlstatus_url_replacement[] = "";
    5. $dlstatus_url_pattern[] = "#\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
    6. $dlstatus_url_replacement[] = "";
    7. $dlstatus_url_pattern[] = "#\[url=((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
    8. $dlstatus_url_replacement[] = "";
    9. $dlstatus_img_pattern[] = "#\[img\]((www)\.([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/img\]#is";
    10. $dlstatus_img_replacement[] = "$1";
    11. $dlstatus_img_pattern[] = "#\[img\]([\w]+?://([\w\#$%&~/.\-;:=,?@\]+]+|\[(?!url=))*?)\[/img\]#is";
    12. $dlstatus_img_replacement[] = "$1";
    13. $dlstatus_img_pattern[] = "#\[img=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/img\]#is";
    14. $dlstatus_img_replacement[] = "$1";
    15. $dlstatus_img_pattern[] = "#\[img=((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/img\]#is";
    16. $dlstatus_img_replacement[] = "$1";
    17. $dlstatus_image_download_url_ausgabe = $image_row['image_download_url7'];
    18. $dlstatus_image_download_url_exit = preg_replace($dlstatus_img_pattern, $dlstatus_img_replacement, $dlstatus_image_download_url_ausgabe);
    19. $dlstatus_image_download_url_clean = preg_replace($dlstatus_url_pattern, $dlstatus_url_replacement, $dlstatus_image_download_url_exit);
    Alles anzeigen


    Das funktioniert aber nicht für diesen BBcode:

    Quellcode

    1. [url=http://linksave.in/11626316095353eb0b9ddb7][img]http://linksave.in/11626316095353eb0b9ddb7-t.png[/img][/url]

    Das IMG ist im URL= verschachtelt. Kann mir da jemand helfen?