【问题标题】:PHP Wamp is not finding a file which existsPHP Wamp 找不到存在的文件
【发布时间】:2010-02-25 16:53:59
【问题描述】:

我遇到了一个严重问题,即我的 PHP 5.3.0 的 WAMP 安装没有找到我计算机中存在的文件。有人对这个有了解吗?可能是 PHP 错误? 任何帮助将不胜感激。

这是创建文件的变量:

$baseNewsUrl = "C:/reviews/reviews/$platform/$fullname";

这是获取内容的代码:

if(is_file($baseNewsUrl)){
    $contents = file_get_contents($baseNewsUrl);
} else {
    echo "File not found. " . "\r\n";
    continue;
}   

这是$baseNewsUrl的输出:C:/reviews/reviews/GBA/r20107_GBA.htm 该文件确实存在。

【问题讨论】:

  • 你检查文件的权限了吗?
  • 如果不了解您正在使用的代码和文件结构,几乎不可能为您提供帮助。
  • 向我们提供更多信息会有所帮助。您要查找的文件在哪里?你能告诉我们试图阅读它的代码吗?我的第一个倾向是该文件位于 PHP 或其运行的用户没有读取权限(出于安全考虑)的某个位置。
  • 另外,您可以输出$baseNewsURL 并尝试手动访问路径吗?您是否 100% 确定该文件存在?也许 $platform 或 $fullname 没有在您使用它们的上下文中设置?
  • 只是为了排除这种可能性,这一切都发生在同一台计算机上,对吧?没有虚拟机或远程服务器可用?

标签: php wamp


【解决方案1】:

检查通向您文件的整个路径是否可以被运行 PHP 的用户读取(如果您使用的是 IIS,这可能类似于“网络服务”,尽管我对 Windows 上的 PHP 没有特别的经验) .此外,检查是否设置了 INI 指令“open_basedir”或“safe_mode”——这些会为 PHP 设置可访问文件的自我限制。

【讨论】:

    【解决方案2】:

    对变量执行 var_dump(不是回显)。

    var_dump($baseNewsUrl);
    

    并查看实际内容。如果您在浏览器中执行此操作以确保没有空标签(或其他浏览器渲染不可见)字符,您可能会有一些不可见的垃圾字符阻止 Windows。

    如果这没有显示任何内容,请删除 is_file 检查并尝试使用 file_get_contents(或任何与文件相关的函数)打开文件并 var_dump 它的内容。您要么打开文件,要么 PHP 会发出错误/警告/通知(向您的浏览器或错误日志),让您知道为什么它无法打开文件。

    【讨论】:

      【解决方案3】:

      我要这么说,这很可能不是你的问题,但对我来说这是一个反复出现的问题。如果您在计算机上使用 Skype,则它与 WAMP 存在一些众所周知的兼容性问题。它会导致 WAMP 不稳定,无法正确加载文件.. 一切。

      【讨论】:

        【解决方案4】:

        在窗户上

        $baseNewsUrl = "C:\\reviews\\reviews\\$platform\\$fullname";
        

        【讨论】:

        • 您应该始终使用正斜杠字符来访问 PHP 中的路径名。 “C:/reviews/reviews/$platform/$fullname”是访问文件的首选方式。
        【解决方案5】:

        这是由于 Windows Vista 和 WAMP 造成的。

        【讨论】:

          猜你喜欢
          • 2015-12-15
          • 1970-01-01
          • 1970-01-01
          • 2015-10-26
          • 1970-01-01
          • 1970-01-01
          • 2019-09-11
          • 2014-05-31
          • 2016-06-30
          相关资源
          最近更新 更多