社区
基础编程
帖子详情
高分--求教高手:PHP与XML的问题。
swall
2003-08-19 11:47:57
以下这个循环,什么情况下会退出?什么情况下又会死循环了?
while ($mstrData = fread($mobjFP, 4096))
{
if (!xml_parse($mobjParser, $mstrData, feof($mobjFP)))
{
die("");
}
}
...全文
53
17
打赏
收藏
高分--求教高手:PHP与XML的问题。
以下这个循环,什么情况下会退出?什么情况下又会死循环了? while ($mstrData = fread($mobjFP, 4096)) { if (!xml_parse($mobjParser, $mstrData, feof($mobjFP))) { die(""); } }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
swall
2003-08-19
打赏
举报
回复
是否每次执行以下这句,都读到同样的东西?还是每次会往下读?
$mstrData = fread($mobjFP, 4096)
xuzuning
2003-08-19
打赏
举报
回复
文件结束或读出错误就退出
不会出现死循环
xuzuning
2003-08-19
打赏
举报
回复
文件结束或读出错误就退出
不会出现死循环
babystudio
2003-08-19
打赏
举报
回复
如果set_time_limit()在你的服务器上可用,基本上这就可以解决当机问题,不过一个缺点是访客看到的是
脚本超过最大运行时限
的服务器错误。
你可以通过register_shutdown_function()注册一个方法来处理超时情况,可以有一个比较友好的界面。
xuzuning
2003-08-19
打赏
举报
回复
@set_time_limit(5);
$fp = fopen("http://.....); // 5秒钟大不开则超时
@set_time_limit(10);
// 打开后10秒钟不能读取和解析完则超时
代码中判断是否超时可用
if(connection_timeout())
超时
swall
2003-08-19
打赏
举报
回复
分段设置?不太明白。。可否解释一下?
xuzuning
2003-08-19
打赏
举报
回复
如果5秒钟就可读取文件并解析完成,那自然是没有问题了
对远程文件要分段设置
swall
2003-08-19
打赏
举报
回复
感谢!!
那是否表示:我在文件的前边加上set_time_limit(5) ,该问题就可以彻底解决?
xuzuning
2003-08-19
打赏
举报
回复
哦,是这样啊。
这是正常现象,
1、我试着将参数换成任意的别的显然不存在的文件。看起来也只是读不到结果,并不会出现当机情况。。
这是因为文件打不开,$mobjFP无效。至多报个错
2、如果参数mobjFP的所在文件无法访问(该文件放在别的server上而该server所在城市全城停电的情况),整个网站访问非常非常慢,甚至当机。
使用文件函数打开远程文件。使用http或ftp协议。处理过程中将不断的进行尝试,直到成功或php超时
建议
1、视远程文件更新周期,考虑在本地缓存文件
2、设置php超时时间在适当的限度
swall
2003-08-19
打赏
举报
回复
我的问题就是:
页面代码似乎出了问题,正常情况下一切OK,如果参数mobjFP的所在文件无法访问(该文件放在别的server上而该server所在城市全城停电的情况),整个网站访问非常非常慢,甚至当机。
调查原因时尝试将该页改成空白页后,一切又正常了。
奇怪的是: 我试着将参数换成任意的别的显然不存在的文件。看起来也只是读不到结果,并不会出现当机情况。。
有好的建议么?
xuzuning
2003-08-19
打赏
举报
回复
不会。
另外,你并未说明你遇到了什么问题
xuzuning
2003-08-19
打赏
举报
回复
不会。
另外,你并未说明你遇到了什么问题
swall
2003-08-19
打赏
举报
回复
另外一个问题:是否存在某种情况,比如用户太多的情况,而文件又读不到时,会等待很长时间然后导致down机?
swall
2003-08-19
打赏
举报
回复
感谢上边两位的答复。。终于明白了流程。。虽然对我的问题的解决还是没作用。。
xuzuning
2003-08-19
打赏
举报
回复
是否每次执行以下这句,都读到同样的东西?还是每次会往下读?
$mstrData = fread($mobjFP, 4096)
答案是:每次会往下读
sports98
2003-08-19
打赏
举报
回复
我上面说的游标,就是C里所说的文件指针的含义
你可以参考一下手册中fseek函数的相关说明
sports98
2003-08-19
打赏
举报
回复
不会的
你这代码不会死循环的
文件内是有游标的,fread不是没次都从头读文件的...
当你的$mstrData不符合XML标准的时候程序将退出..
《ACM竞赛-C/C++入门》 C语言-13
清华大学尹成老师、微软全球具有价值专家,手把手从基础教学到深入探讨,教你成为信息学竞赛
高手
,让你知识点一通百通拿到竞赛
高分
,为编程开发打下坚实的基础! 从零基础到在蓝桥杯、NOIP、ACM竞赛、信息学...
CSDN回帖得分大全(近两年)
C语言与
PHP
通信的
问题
(SOCKET) [VC/MFC 网络编程] √ 请问如何看懂一个vs2005程序 [VC/MFC 基础类] √
高手
解决,recv重复接受了两次数据 [VC/MFC 网络编程] √ vc++下...
webmagic采集CSDN的Java_WebDevelop页面
, 单位排班维护界面怎么开发,急 急 急, 请问
高手
,关于xstream插件的
问题
, JSP中if-else-if语句多的时候,运行就会报错!, myeclipse导入web项目出错, 求助:怎么将一个有web项目目录结构的java项目部署到tomcat中...
VC++中可能遇到的
问题
另:9X系列与NT系列是否有所不同? A VC中没有内建这样的功能,你需要调用WMI脚本。搜索Visual C++ 和WMI你就可以找到在Visual C++中如何调用WMI。 方案:更改 DNS 服务器和域 在企业发生重大变革时(例如,合并、...
网址
XML
在线编辑器EdX
XML
Document Editor Behavior Demo 在线编辑器研究 大连之星-维易网 研究(文件菜单!) 表格拆份合并处理 部署ASP.NET的三大技术(上) 需要研究! 媒体 C# ...
基础编程
21,880
社区成员
140,365
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章