为什么我的 .php fopen() 方法不起作用?

为什么我的 .php fopen() 方法不起作用?

为什么我的 .php fopen() 方法不起作用?它说找不到文件?非常感谢任何帮助:

  #!/usr/local/bin/php

  <?php     

       $strLessonDescription = fopen("c:\\exercise5\\content\\lesson5.txt", "r") 
                        or die ("Error - lesson5.txt cannot be opened");

       $arrLessonVocabulary  = fopen("c:\\lovej2ee\\exercise5\\content\\vocabulary5.txt", "r") 
                        or die ("Error - lesson5.txt cannot be opened");
  ?>

答案1

根据路径格式猜测您使用的是 Windows:为什么不指定驱动器号?例如:

 "c:\\dir\\dir\\thing.txt"

以 开头"\\dir"会为您提供“当前驱动器”上的绝对路径,无论它在运行该 PHP 代码的上下文中是什么。如果您想要一个正常的相对路径,请删除第一个\\

如果您想要 UNC 路径,那么将是:

"\\\\host\\share\\dir\\..."

(如果您使用的是 unix 类型的平台,那么斜线就是错误的,但相对路径与绝对路径的问题仍然存在。)

[而且你的两条路径可疑地不一致。但不知道这是否是故意的。]

答案2

我同意 Mat 的观点,你可能希望更明确地说明文件路径的意图。此外,我进一步建议你可能希望在尝试打开文件之前确保该文件存在。你可以使用 file_exists() 来做到这一点:

$filename = '\exercise5\content\lesson5.txt';

if (file_exists($filename)) {
    //Your code here
} else {
    //error gracefully
}

如果您可以使用更多信息更新您的原始问题,您收到的帮助可能会更为有力。

编辑:根据您更新的问题(这是一个完全不同的问题),您尝试读取的文件实际上是通过远程请求而不是本地文件读取的,这一事实会显着改变事情。根据fread() 手册页,您需要以不同的方式读取文件。或者,只需使用文件获取内容()

相关内容