以下脚本在我的localhost上运行没有任何问题。它创建了一个json文件,我请求使用AJAX在我的前端构建一个表。但是,当我把它放在运行apache 2和php 5.5(安装了json模块)的Ubuntu VM上时,它并没有创建json文件,结果是我的表是空的。
<?php
$arr = scandir('.\lehre\test');
foreach($arr as $k=>$v){
if($arr[$k] == "." || $arr[$k] == ".."){
unset($arr[$k]);
}
$fp = fopen('files.json', 'w');
fwrite($fp, json_encode($arr));
fclose($fp);
}
?>
PS:其他PHP元素,如include语句工作。 编辑:我没有收到任何错误消息。我在任何其他路径声明中使用正斜杠表示法
答案 0 :(得分:1)
通过它的声音,您的开发环境是我猜测的Windows机器,它在引用目录路径时使用反斜杠(\
)。但是在UNIX系统上(在您的情况下是Ubuntu),系统使用正斜杠(/
)。
好消息是,即使Windows系统使用反斜杠,在Windows中运行PHP脚本也会同时识别反斜杠和正斜杠,因此您可以使用它而无需在每次运行脚本时更改它一个不同的操作系统。
TL; DR:使用/
代替\
。它适用于Windows和Ubuntu。