Ich versuche, Dateinamen mit Telefonnummern in Array hinzuzufügen. Meine Testdateien sind:PHP Regex, um Telefonnummern aus Dateinamen zu extrahieren
dsfdsf543-6786sdfsdfd.jpg
543-6786sdfsdfd.jpg
435-3454
dsfdsf543-6786.jpg
123-4567
543-6786.jpg
345-3454
Mein Ziel verschiedene Telefonnummern ist separate Zeile von Elementen in Array haben. Jedes Element in der Array-Zeile hat dieselbe Telefonnummer. Zum Beispiel:
543-6786 dsfdsf543-6786sdfsdfd.jpg 543-6786sdfsdfd.jpg dsfdsf543-6786.jpg 543-6786.jpg
435-3454
123-4567
345-3454
Mein Code:
$directory = $_SERVER['DOCUMENT_ROOT'];
$handler = opendir($directory);
while ($file = readdir($handler)) {
if ($file != "." && $file != "..") {
$regex = "/[\D]*[0-9]{3}-[0-9]{4}[\D]*/";
preg_match_all($regex, $file, $results);
}
}
print_r ($results);
Ergebnis ist
Array ([0] => Array ([0] => 345-3454))
warum nur ein Dateiname im Array? Wo ist mein Fehler? Vielen Dank im Voraus!
Keine Lösung, aber ein Hinweis. Ihr Ausdruck kann vereinfacht werden zu '~ \ D * \ d {3} - \ d {4} \ D * ~' - es ist nicht notwendig, '\ D' in eine Zeichenklasse und' [0-9] 'zu setzen entspricht '\ d' in' PCRE'. – Jan
Versuchen Sie '$ regex ="/(?