title image


Smiley Regulärer Ausdruck in preg_match_all()
Hi PHPler,



ich möchte mittels eines Regulären Ausdrucks auf eine Zahlenkette prüfen,

die folgende Eigenschaften aufweisen soll:

Länge min 10, max 13 Stellen und es darf ein x vorkommen.



Folgendes verwende ich momentan:

$pattern = "([0-9x]{10,13}i)"



Optimal wäre allerdings folgender Ausdruck:

Länge min 10, max 13 Stellen und das X darf nur an 10er Stelle vorkommen, wenn es vorkommt. Den Ausdruck dafür habe ich allerdings bisher nicht hinbekommen.



Zu meinem eigentlichen Problem,

wenn ich Besipielsweise eine Datei einlese und den Inhalt auf diesen Ausdruck hin prüfe, dann funktioniert das auch ohne weiteres aber bei preg_match_all() werden nicht nur die Treffer übergeben sondern auch die Zeilen übergeben, die nicht passen. Diese sind dann zwar leer aber nicht notwendig.



Bsp.



$array = file($_FILES['datei']['tmp_name']);

foreach ($array as $p_array) {

preg_match_all("([0-9x]{10,13}i)",$p_array,$arr);

$array1[] = $arr[0][0];

}



print_r($array1);



Meine Frage ist also, warum werden die nicht passenden Zeilen als Treffer mit in das Array geschrieben und wie kann ich diese während der Überprüfung löschen.





Dankeschön im voraus



Lorka



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: