PHP fgets函数没有完全读取下面的文本文件行 . 我正在使用fgets逐行读取一些数据 .
未能完全阅读的行如下;
%107A195U<u--8+5-9+6-17+3-5v<1
truncates to: %107A195U
%113A120+<l56+2l5-6+<17+2-+6-+2
truncates to: %113A120+
它只读取部分行,但只要遇到“<”小于符号,它就会截断该行 . 其他类似的行读得很好,但有些行中的<字符会被截断 . 但是,如果我在小于符号之后放置一个'引号,那么该行将完整读取 . 例如,<'导致整行被正确读取 . 很奇怪 . 这就像有时影响fgets行读取的小于号,取决于旁边的其他字符 .
例如,其他读取完全正常的行如下所示;
%106A191+->2-15l8v<><10-4+u
%108A189+l-E-hj2l6+3l-14+2->-6l4+l2
%109A188vh->Xfp-+8l-3+5-l3l+11-l>7
%110A186+wo2v+o4-2++qd5+5-+<3+<+3-+1
计划代码
<?php
echo "START " ."<br>";
$FileName = "./test5.txt";
$infile = fopen($FileName, "r") or die("Unable to open file!");
$dataline = fgets($infile);
while(!feof($infile)) {
$dataline = fgets($infile);
echo " DATALINE ==> " . $dataline . "<br>"; //debug
}//endloop
?>
程序数据文件 - text5.txt
TEST DATA FILE
%106A191+->2-15l8v<><10-4+u
%107A195U<u--8+5-9+6-17+3-5v<1
%108A189+l-E-hj2l6+3l-14+2->-6l4+l2
%109A188vh->Xfp-+8l-3+5-l3l+11-l>7
%110A186+wo2v+o4-2++qd5+5-+<3+<+3-+1
%111A186qGBl4l<+<3+3l-5+u15u6
%112A182+u>2-4-2+2-16+2u+-2+-3->2
%113A120+<l56+2l5-6+<17+2-+6-+2
%114A120l>2-50+->u2g+<18+-6+<69+
END DATA
计划输出
START
DATALINE ==> %106A191+->2-15l8v<><10-4+u
DATALINE ==> %107A195U DATALINE ==> %108A189+l-E-hj2l6+3l-14+2->-6l4+l2
DATALINE ==> %109A188vh->Xfp-+8l-3+5-l3l+11-l>7
DATALINE ==> %110A186+wo2v+o4-2++qd5+5-+<3+<+3-+1
DATALINE ==> %111A186qGBl4l<+<3+3l-5+u15u6
DATALINE ==> %112A182+u>2-4-2+2-16+2u+-2+-3->2
DATALINE ==> %113A120+ DATALINE ==> %114A120l>2-50+->u2g+<18+-6+<69+
DATALINE ==> END DATA
寻求解释和解决方案 .
1 回答
人们是 htmlentities() 功能解决了这个问题 . 非常感谢您的回复 . 非常感激 .
SOLUTION: