fgets()不读取整行

时间:2017-06-14 07:30:11

标签: php fgets

我有一个文件,其中包含以下长单行随机字符串:

fuzzero^G5%eLz@5?0jzlqCA};iBdi>hSa0Uc"DS{m*JVMPMN),)dBnbwGNKYE#uP$3@WGyV#kjC&(2yW1l`DJ,`3Mz#5gbU}eAUU)uB7N><A"qa;M{y9{mdKW"P?4o`jZI<M?tTElL<f?3aC1JM0&ZKGTewYDk;g$`#UhAcD05S>8#tap'aaUVQr`14rl0I3`oY6Z`JZ'fR3:{em"owN{0"(1}en}Wr*,3>Z<AC(Q8?M64(0siNrjGdkEsIB2)n2?e@%PiRjqH&xLSx<|,j8Fxt{Z|z@YW%P|JyE@3Y6KID9f`25)ldtSGrvw@b9C'YrDa&jeIpY5#(lR`qFaE)#,ecv'oFwihYWsI"G5ija,5wQ'Wa4f}*ec{K6n3DGlfgNXa8#tr>sxo}s,7xe4jsgh?nF"!,e"g#Qq|xTgp0ON{;M5s!aL6r$}On>sm5lD(?$XoB<NBGezC!F%EQuL;cIJzz?WFcds2;3rx;<)C6m<*#Xqw6|riy|S(@ts<HU'CYl)Teordizuzfeid

我写了php代码来读这一行:

$myfile = fopen($path, "r") or die("Unable to open file!");
$txt=fgets($myfile);
echo $txt;

fclose($myfile);

输出是随机字符串的一部分:

fuzzero^G5%eLz@5?0jzlqCA};iBdi>hSa0Uc"DS{m*JVMPMN),)dBnbwGNKYE#uP$3@WGyV#kjC&(2yW1l`DJ,`3Mz#5gbU}eAUU)uB7N>8#tap'aaUVQr`14rl0I3`oY6Z`JZ'fR3:{em"owN{0"(1}en}Wr*,3>Zsxo}s,7xe4jsgh?nF"!,e"g#Qq|xTgp0ON{;M5s!aL6r$}On>sm5lD(?$XoB

如何阅读并显示完整的字符串?

1 个答案:

答案 0 :(得分:3)

发布的代码运行正常。它从文件中读取527个字节。

如果您在浏览器中运行此PHP脚本,那么您认为它未命中的部分(<A"qa;M{y9{mdKW"P?4ojZI<M?tTElL<f?3aC1JM0&ZKGTewYDk;g$#UhAcD‌​05S>)看起来像HTML元素,并且浏览器不会显示它。

检查页面源(在菜单或开发人员工具中查找)以查看脚本生成的确切输出。

或者,更好的是,使用PHP header()函数告诉浏览器脚本生成的内容是文本,而不是HTML:

header('Content-Type: text/plain');
$myfile = fopen($path, "r") or die("Unable to open file!");
$txt=fgets($myfile);
echo $txt;

fclose($myfile);

如果您想一次性阅读文件的全部内容,那么PHP专门为此提供了函数file_get_contents()

header('Content-Type: text/plain');
$txt = file_get_contents($path);
echo($txt);