PHP fopen()无法运行

PHP fopen()无法运行,php,fopen,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\\P0

我的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");
奇怪的是,当我试图打开那个URL时,它被打开了。 要确保该文件存在

有什么建议吗?

不要使用fopen,文件获取内容功能是将文件内容读入字符串的首选方法。如果操作系统支持,它将使用内存映射技术来提高性能

像这样: 文件\u获取\u内容'http://192.168.183.28/DIGI_PROG/M10/TEST1/P001.txt';

编辑: 如果要打开共享网络资源上的文件,请使用此示例,注意路径中没有双斜杠:

file_get_contents'/path/to/mount/path/to/file.txt'

注:


如果要使用特殊字符(如空格)打开URI,则需要使用urlencode对URI进行编码。

非常基本的尝试应该是:

$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");
?>
希望这能帮你找到原因 当做
弗拉基米尔

如果你阅读这些文件,你会看到

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')

或者在确保allow\u url\u fopen设置为1后使用file\u get\u contents

所有反斜杠都在那里做什么。对路径使用正斜杠,即使在windows@presiuslitelsnoflek我试过了,但错误仍然和以前一样。同样,对非动态stringsUNC路径使用单引号也可以在fopen中使用。也许你的问题与权限问题有关?你是在建议另一个URL。OP需要来自共享网络的文件,但您的URL位于web服务器上。使用正斜杠可以避免一些转义问题。而且,这个答案并不能解决OP的问题。他应该找到他不能打开文件的原因,对吗?所以,如果您再次阅读,可能会注意到我建议的两个简单步骤:-检查文件是否存在-打开文件那么,为什么您说它不能解决问题?在尝试打开文件之前检查文件是否存在,这将使他受益匪浅,并将处理潜在的错误。显然,您的评论明确指出,在发布前应该阅读php文档,使用正斜杠可以避免一些转义问题,因为您可以在php.net上阅读它,VUNC路径不等于URL。