kostenloser Webspace werbefrei: lima-city


URLs aus String extrahieren ?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    lukepress

    lukepress hat kostenlosen Webspace.

    Hallo

    wie kann ich aus einem String, in dem u.a. auch mehrere URLs sind
    diese http-Adressen herausfiltern, also extrahieren ... je einzeln in Array verfügbar

    klappt auch fast ... aber irgendwas stimmt nicht:

    bei einem String mit 2 URLs (ein Link und eine Grafik-Adresse) :
    bekomme ich im Array nochmal einen zusätzlichen Eintrag mit nur http:// ???
    preg_match_all("((http://|https://|ftp://|mailto:)[^ ]+)", $meinstring, $match); 
    
    echo "<pre> \r\n"; 
    print_r($match); 
    echo "</pre> \r\n";


    AUSGABE:

    Array
    (
    [0] => Array
    (
    [0] => http://www.example.org/name.php
    [1] => http://www.example.org/image.png
    )

    [1] => Array
    (
    [0] => http://
    [1] => http://
    )

    )


    wo kommt der überflüssige Eintrag her? ... wie bekomme ich die URLs
    in ein einfaches Array (nicht Multiarray wie jetzt)
    ?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Nimm einfach das noch dazu:
    $urls = $match[0];
  4. Der Grund dafür ist einfach. preg_match_all packt ins erste Array die gesamten gemactchten Strings, ins zweite die erste Captured Group, ins dritte die zweite Captured Group, usw. Damit du dieses zweite Array nicht bekommst, musst du die Gruppe Non-Capturing machen:
    preg_match_all('((?:http://|https://|ftp://|mailto:)[^ ]+)', $meinstring, $match);

    Anschließend machst du das, was drafed-map gesagt hat ;)
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!