首頁 > 後端開發 > php教程 > php 处理html时,字符串截断

php 处理html时,字符串截断

WBOY
發布: 2016-06-23 13:51:38
原創
953 人瀏覽過

stream=fopen("xxx.html");var str = '';while(!feof(stream){      size+=1024;     str.=fread(stream,size);}....
登入後複製


str只能获取1024个字节,后面的都比截断了,但是fread确实读取到了,是不是用.=出了问题,还是html里面有特殊字符导致截断?
谢谢大神


回复讨论(解决方案)

$stream=fopen("test.txt","a+");$str = '';$size=1024;while(!feof($stream)){	$str.=fread($stream,$size);}fclose($stream);echo $str;
登入後複製
登入後複製

$stream=fopen("test.txt","a+");$str = '';$size=1024;while(!feof($stream)){	$str.=fread($stream,$size);}fclose($stream);echo $str;
登入後複製
登入後複製


我读取的是html,跟读取模式应该没关系,有的页面可以抓取,有的页面抓取被截断,怀疑某个html标签的问题?谢谢

就你上面的代码而言,都不能运行,可能是你写错吧
至于你说的html的某个特殊字符,应该是不存在的
而且你只是读取一个html,数据不大,建议用file_get_contents(),性能比fread好

你那又不是 php 代码

就你上面的代码而言,都不能运行,可能是你写错吧
至于你说的html的某个特殊字符,应该是不存在的
而且你只是读取一个html,数据不大,建议用file_get_contents(),性能比fread好


恩,我乱写的,大概意思,刚开始改cms,php入门级。
您写的很对,但是我确实遇到问题了,调试的时候,每次while里面的fread都能读到数据,但是,加到字符串str里面后,str的长度变了,但是内容每增加,难道是调试的问题,调试的时候只能只能显示变量一部分?我改过xdebug的显示最大长度,没有效果,我用的vs.php调试的,怎么搞能显示全部。怎么搞能看到到底str存了多少,只见其长度增加,没见到内容变化

你用

$stream=fopen("test.html","r");$str = '';$size=1024;while(!feof($stream)){	$tmp=fread($stream,$size);	file_put_contents('d:/log.log',$tmp.PHP_EOL,FILE_APPEND);	$str.=$tmp;	$tmp='';}fclose($stream);echo $str;
登入後複製
登入後複製

运行程序,再打开log.log查看,每一行是每次while循环读取的数据

您那是什么代码?C么?

你用

$stream=fopen("test.html","r");$str = '';$size=1024;while(!feof($stream)){	$tmp=fread($stream,$size);	file_put_contents('d:/log.log',$tmp.PHP_EOL,FILE_APPEND);	$str.=$tmp;	$tmp='';}fclose($stream);echo $str;
登入後複製
登入後複製

运行程序,再打开log.log查看,每一行是每次while循环读取的数据


好的,我试试,好人啊,
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板