2016-05-22 6 views
0

Was ich versuche zu tun ist Datei Dateierweiterung der Datei überprüfen, wenn die Erweiterung der Datei mit dem Element des Extensions-Array dann übereinstimmt Ich rufe die Funktion get_size() auf, sonst zeige ich die Fehlerdatei nicht an ... Das Problem ist, ob die Erweiterung übereinstimmt oder nicht die else-Anweisung meines Codes ausgeführt wird, aber ich möchte nur else-Anweisung ausführen, wenn die Erweiterung doesn ‚t Spiel Unten ist mein CodeIch finde schwierig zu verstehen, das Problem, das ich mit der foreach-Schleife konfrontiert

// getting the extension of the file 
$ext = pathinfo($file_name, PATHINFO_EXTENSION); 
// allowed extension array 
$extensions= array('txt','xls','xlsm','xlsx','xlsm','csv'); 
// foreach loop for checking if extensions matches or not 
foreach ($extensions as $extres) 
{ 
    # code... 
    if($extres===$ext) 
    { 
     get_size(); 
    } 

    else 
    { 
     # code... 
     $once=1; 

    } 

} 
if($once==1) 
{ 
    exit("Sorry file not matched"); 
} 
+1

'$ once' wird' 1', es sei denn, die Erweiterung entspricht * jedem * Element im Array, was natürlich nicht möglich ist. – Biffen

+1

Bitte ändern Sie die Logik, 1. Initialisieren Sie das $ vor dem Foreachloop auf 1. 2. Setzen Sie $ einmal auf 0, wenn eine Übereinstimmung vorhanden ist ($ extres === $ ext). 3. Dinge werden gut funktionieren. Grund: Erweiterung wird nur einmal unter der ganzen Erweiterung übereinstimmen, so dass der Rest alle $ einmal auf 1 setzt und somit in den anderen Fall geht. –

+0

@jeffrycopps Ich habe bereits $ 0 initialisiert = 0 vor foreach loop –

Antwort

0

Verwenden Sie den folgenden Code ein:

// getting the extension of the file 
$ext = pathinfo($file_name, PATHINFO_EXTENSIO-N); 
// allowed extension array 
$extensions= array('txt','xls','xlsm','xlsx','xlsm','csv'); 
// foreach loop for checking if extensions matches or not 
$once = 1; 
foreach ($extensions as $extres) 
{ 
    # code... 
    if($extres===$ext) 
    { 
     get_size(); 
     $once = 0; 
    } 
    else 
    { 
     # code... 
     //$once=1; //Remove the else part. 
    } 
} 
if($once==1) 
{ 
    exit("Sorry file not matched"); 
} 
Verwandte Themen