PHP读文件出错Warning: ...... failed to open stream: Invalid argument in ......
delete_html.php
<?php
$array=file('all_file.txt');
$rows=count($array);
for($a=0;$a<$rows;$a++)
{
$char=file_get_contents("html/".$array[$a]);
$char=str_replace(" ",' ',$char);
$char=eregi_replace('[[:space:]]+',' ',$char);
。。。。。。
$fp2=fopen("test/".$array[$a],'wb');
fwrite($fp2,$char);
fclose($fp2);
}
?>
all_file.txt:
introduction.html
installing.html
tutorial.html
using-mysql-programs.html
。。。。。。
当all_file.txt只有一行时,执行OK。
当all_file.txt为多行时,提示:
Warning: file_get_contents(html/introduction.html ) [function.file-get-contents]: failed to open stream: Invalid argument in D:\Web\www\test\MySQL5.1\delete_html.php on line 6
Warning: fopen(test/introduction.html ) [function.fopen]: failed to open stream: Invalid argument in D:\Web\www\test\MySQL5.1\delete_html.php on line 17
Warning: fclose(): supplied argument is not a valid stream resource in D:\Web\www\test\MySQL5.1\delete_html.php on line 19
Warning: file_get_contents(html/installing.html ) [function.file-get-contents]: failed to open stream: Invalid argument in D:\Web\www\test\MySQL5.1\delete_html.php on line 6
Warning: fopen(test/installing.html ) [function.fopen]: failed to open stream: Invalid argument in D:\Web\www\test\MySQL5.1\delete_html.php on line 17
Warning: fclose(): supplied argument is not a valid stream resource in D:\Web\www\test\MySQL5.1\delete_html.php on line 19
。。。。。。
请问这是什么原因,如何解决!谢谢!!! 展开
1、语法错误。语法错误最常见,并且最容易修复。例如,遗漏了一个分号,就会显示错误信息。这类错误会阻止脚本执行。通常发生在程序开发时,可以通过错误报告进行修复,再重新运行。
2、运行时错误。这种错误一般不会阻止PHP脚本的运行,但是会阻止脚本做希望它所做的任何事情。
3、逻辑错误。这种错误实际上是最麻烦的,不但不会阻止PHP脚本的执行,也不会显示出错误消息。例如,在if语句中判断两个变量的值是否相等,如果错把比较运行符号“==”写成赋值运行符号“=”就是一种逻辑错误,很难会被发现。一个异常则是在一个程序执行过程中出现的一个例外,或是一个事件,它中断了正常指令的运行,跳转到其他程序模块继续执行。所以异常处理经常被当做程序的控制流程使用。无论是错误还是异常,应用程序都必须能够以妥善的方式处理,并做出相应的反应,希望不要丢失数据或者导致程序崩溃。
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
Warning: file_get_contents(html/introduction.html ) [function.file-get-contents]: failed to open stream: Invalid argument in D:\Web\www\test\MySQL5.1\delete_html.php on line 6
看到警告信息后 file_get_contents(html/introduction.html ) 的括号里有个空格,这个空格是换行符
请问,带上了\r\n的文件路径会是正确的吗?
正确的办法是不用file读取文件,利用file_get_contents读取,explode("\r\n",file_get_contents())来分行
这样就行了!
如果你不想显示这个警告
@file_get_contents("html/".$array[$a]);
加一个@屏蔽警告。
应该是你的路径写错,程序无法找到你传过去的路径文件
上面的应该就是file_get_contents的参数不对,确保html目录下有你所说的那几个文件。建议楼主在for()之前先echo "html/".$array[$a] ;可以看一下是不是正确的文件路径。
程序都是出现问题慢慢调试出来的。祝早日解决问题哦!