【问题标题】:PHP Code not executing on Ubuntu ServerPHP 代码未在 Ubuntu 服务器上执行
【发布时间】:2017-10-10 09:42:40
【问题描述】:

以下脚本在我的本地主机上运行,​​没有任何问题。它创建了一个 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 语句。 编辑:我没有收到任何错误消息。我在任何其他路径声明中使用正斜杠符号

【问题讨论】:

  • 尝试使用 slashes 而不是 antislashes 作为scandir 路径
  • 在 Linux 系统上使用 / 而不是 `\`
  • 似乎没有修复它:(
  • 你遇到了什么错误?
  • ../ 用于后向目录

标签: php ubuntu apache2


【解决方案1】:

我猜你的开发环境是一台 Windows 机器,它在引用目录路径时使用反斜杠 (\)。但是在 UNIX 系统(在您的情况下是 Ubuntu)上,系统使用正斜杠 (/)。

不过,好消息是,即使 Windows 系统使用反斜杠,在 Windows 中运行 PHP 脚本也会将反斜杠和正斜杠识别为相同,因此您可以使用其中一个,而无需在每次运行脚本时更改它不同的操作系统。

TL;DR:使用/ 而不是\。它适用于 Windows 和 Ubuntu。

【讨论】:

    猜你喜欢
    • 2012-09-19
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-06
    • 2014-04-17
    • 2019-08-26
    • 1970-01-01
    相关资源
    最近更新 更多