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");
}
'$ once' wird' 1', es sei denn, die Erweiterung entspricht * jedem * Element im Array, was natürlich nicht möglich ist. – Biffen
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. –
@jeffrycopps Ich habe bereits $ 0 initialisiert = 0 vor foreach loop –