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<... 代码如下:
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
。。。。。。

请问这是什么原因,如何解决!谢谢!!!
展开
 我来答
洋柿子煎蛋
2018-04-04 · TA获得超过1.8万个赞
知道小有建树答主
回答量:84
采纳率:100%
帮助的人:1.2万
展开全部

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还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

clark21330
推荐于2018-02-27 · TA获得超过453个赞
知道小有建树答主
回答量:159
采纳率:0%
帮助的人:225万
展开全部
下面的都没注意到一个细节!

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())来分行

这样就行了!
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leelizk
2010-12-02 · TA获得超过573个赞
知道小有建树答主
回答量:776
采纳率:0%
帮助的人:477万
展开全部
打开文件失败!
如果你不想显示这个警告
@file_get_contents("html/".$array[$a]);
加一个@屏蔽警告。
应该是你的路径写错,程序无法找到你传过去的路径文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dajing030
2010-12-02
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
应该考虑一下提高程序的健壮性,在file_get_contents之前可以考虑增加if判断,如果成功继续执行,如果失败就跳出。
上面的应该就是file_get_contents的参数不对,确保html目录下有你所说的那几个文件。建议楼主在for()之前先echo "html/".$array[$a] ;可以看一下是不是正确的文件路径。
程序都是出现问题慢慢调试出来的。祝早日解决问题哦!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式