URLs aus String extrahieren ?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
adresse
array
ausgabe
code
einfaches array
eintrag
ftp
grafik
grund
gruppe
http
image
match
string
zweite array
-
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)
? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
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 ;) -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage