2017-08-15 4 views
0

kann jemand den richtigen Weg empfehlen, preg_match für Verzeichnisnamen zu verwenden.Verwenden Sie PHP preg_match für den Verzeichnisnamen - Unbekannter Modifikator

Ive verwendet glob - eine kleine Reihe von Dateien zu erhalten, und ich bin zu wollen, auf die ich ergeb foreach einschließlich dem Verzeichnis verwenden preg_match ..

aber ich diese Störung erhalten - preg_match(): Unbekannt Modifikator ‚h 'in ....

H natürlich ist der erste Buchstabe meines Verzeichnis nach dem ersten Schrägstrich -/

EDIT - Code ($ Pfad enthält den vollständigen Pfadnamen)

$temp="$path/$name-$type-$number\n"; 
// $temp=preg_replace("/\//","\/",$temp); 
$files=glob("$path/$name*"); 
foreach($files as $ab => $ac) 
{ 
    $outlist.="'$ab' '$ac'\n"; 
    $outlist.="TEMP '$temp'\n"; 
    if(preg_match("/$temp/i",$ac)) 
    { 
    $outlist.="GOT '$ac'\n"; 
    } 
} 
+0

Wie rufen Sie diese Funktion? Können Sie die vollständige Codezeile posten? – danmullen

+0

Ein Zeilenumbruch in einem Dateinamen? Ich denke nicht, dass das da sein sollte. –

Antwort

1

Verwenden Sie also nicht das/als Trennzeichen für Ihre Regex. Oder entkomme den Schrägstrichen in deiner Eingabe.

if(preg_match("~$temp~i",$ac)){$outlist.="GOT '$ac'\n";}

die Annahme ~ ist nie Teil von $ temp

oder durch die Flucht:

$temp2 = preg_quote($temp, '/'); 
if(preg_match("/$temp2/i",$ac)){$outlist.="GOT '$ac'\n";} `