我的PHP fopen()因读取文件而面临问题。
错误是:
Warning: fopen(\\192.168.183.28\DIGI_PROG\M10\TEST1\P001.txt): failed to open stream: Invalid argument in C:\xampp\htdocs\digi\index.php on line 72
和我的PHP代码:
echo $fs = fopen("\\\\192.168.183.28\\DIGI_PROG\\M10\\TEST1\\P001.txt","r");
奇怪的是,当我尝试打开该网址时,它已被打开。 为了确保该文件存在。
有什么建议吗?
答案 0 :(得分:0)
不要使用fopen()
,file_get_contents()
函数是将文件内容读入字符串的首选方法。如果您的操作系统支持,它将使用内存映射技术来提高性能。
像这样:
file_get_contents('http://192.168.183.28/DIGI_PROG/M10/TEST1/P001.txt');
编辑: 如果要打开共享网络资源上的文件,请使用此(例如,注意路径中没有双斜杠):
file_get_contents('/path/to/mount/path/to/file.txt');
注意:
如果您要打开包含特殊字符(例如空格)的URI,则需要使用urlencode()
对URI进行编码。
答案 1 :(得分:0)
非常基本的尝试应该是:
$filename = '/path/to/foo.txt';
if (file_exists($filename))
{
echo "The file $filename exists";
}
else
{
echo "The file $filename does not exist";
}
如果你得到的文件不存在,很明显你的路径错了或文件确实不存在,这不应该是这种情况,因为你在文件系统上检查了它。 检查拼写。 我不确定你应该把那么多的反斜杠放在那里。 你试过fopen(\ \ 192.168.183 ......)吗?
在Windows平台上,请小心转义文件路径中使用的反斜杠,或使用正斜杠。
<?php
$handle = fopen("c:\\folder\\resource.txt", "r");
?>
希望这有助于找到原因 问候 弗拉基米尔
答案 2 :(得分:0)
如果你阅读了文档,你会看到
resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )
其中
filename is of the form "scheme://...", it is assumed to be a URL and PHP
我建议您使用以下
fopen('http://192.168.183.28/DIGI_PROG/M10/TEST1/P001.txt','r')
或使用file_get_contents(确保allow_url_fopen设置为1后)