PHP fopen()无法正常运行

时间:2014-03-24 07:50:18

标签: php fopen

我的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");

奇怪的是,当我尝试打开该网址时,它已被打开。 为了确保该文件存在。

有什么建议吗?

3 个答案:

答案 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后)