从php返回数组值(将图像文件名转换为javascript)



Hi我有一个php文件,它正在读取目录中的所有图像文件,如下所示:

<?php
$dir = "Images/";
$arrayjs = array();
// Open a directory, and read its contents
if (is_dir($dir)){
if ($dh = opendir($dir)){
while (($file = readdir($dh)) !== false){
if($file != "." && $file != ".."){
$arrayjs[] = $file;
echo "filename:" . $file . "<br>";
}
}
closedir($dh);
}
}
header('Content-type:application/json;charset=utf-8'); 
echo json_encode($arrayjs);
?>

并且我想要得到javascript中的结果数组。此代码不起作用。知道为什么吗?

<script type = "text/javascript">
$(function() {
$.getJSON('fileNames.php', function(data) {
console.log('yaa');
$(data).each(function(key, value) {
console.log(value);
});
});
});

</script>

getJson执行ajax调用,该调用将在写入/显示文件时读取文件的内容,因此您的echo "filename:" . $file . "<br>";将成为其中的一部分,这意味着您的json将成为无效的

评论掉那句话,你应该很好

<?php
$dir = "Images/";
$arrayjs = array();
// Open a directory, and read its contents
if (is_dir($dir)){
if ($dh = opendir($dir)){
while (($file = readdir($dh)) !== false){
if($file != "." && $file != ".."){
$arrayjs[] = $file;
//echo "filename:" . $file . "<br>";
}
}
closedir($dh);
}
}
header('Content-type:application/json;charset=utf-8'); 
echo json_encode($arrayjs);
?>

该方法只希望有效的json被回显/显示

最新更新