Die folgende Funktion gibt leere Zeichenfolge zurück. Kann jemand vorschlagen, was im folgenden Code falsch ist? Ich mache einen AJAX-Anruf für diese Funktion.Ajax Aufruf an Wordpress-Funktion Rückgabe leeres Array
function LoadImagesForMenus() {
$filenameArray = [];
$validextensions = ["gif", "jpg", "jpeg", "png"];
$handle = opendir(get_template_directory().'/analyzer-images/');
while ($file = readdir($handle)) {
if ($file !== '.' && $file !== '..' && !empty($file)) {
$filenameArray[] = $file;
$ext = pathinfo($file, PATHINFO_EXTENSION);
if (in_array($ext, $validextensions)) {
$fileArray = [];
$fileArray["fileName"] = "http://xn--ernhrungsberaterzrich-71b08c.ch/wp-content/themes/abundance/analyzer-images/$file";
list($width, $height) = getimagesize("/home/httpd/vhosts/xn--ernhrungsberaterzrich-71b08c.ch/httpdocs/wp-content/themes/abundance/analyzer-images/$file");
$fileArray["width"] = $width;
$fileArray["height"] = $height;
if ($width !== null && $height !== null) {
array_push($filenameArray, $fileArray);
}
}
}
}
echo json_encode($filenameArray);
exit(0);
}
Dank
Was haben Sie versucht, es zu debuggen? Haben Sie bestätigt, dass die Datei existiert, dass Ihre Pfade korrekt sind, dass die Datei erfolgreich gelesen wird, dass $ filenameArray vor der Rückgabe die richtigen Werte hat? – FluffyKitten
Die Dateien existieren im Ordner. Wordpress hat keine Fehler im obigen Code protokolliert. Bewegliche Anweisung echo json_encode ($ filenameArray); Innerhalb der while-Schleife wird ein Array mit Bildinformationen zurückgegeben. – user1404963
Also das Problem ist, dass das Array irgendwie gelöscht wird, ist das richtig? Wo in der While-Schleife war das Array Drucken - ist es vor oder nach dem 'if ($ width! == null && $ height! == null) '? – FluffyKitten