为什么我的 .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() 手册页,您需要以不同的方式读取文件。或者,只需使用文件获取内容()。