PHP fopen()无法运行
我的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
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。