【发布时间】:2020-03-13 15:15:12
【问题描述】:
这是获取文本并在每一行上执行处理的代码:
<?php
$f = fopen('text.txt' , 'r');
$i = 0;
while($line = fgets($f)){
if($i == 1){
$first_line = $line;
}elseif($i == 2){
$second_line= $line;
}elseif($i == 3){
$third_line = $line;
}
$i++;
}
?>
text.txt 包含:
3
ABC
aBD
当我运行下面的代码时,它给了我一个奇怪的输出:
echo strlen($second_line);
$second_line 应该是 ABC 但返回的输出是这样的:
5
还有urlencode($second_line) 显示:
ABC%0D%0A
这 5 个字符中的一个是 "\n",它转到下一行
主要问题是,另外一个隐藏角色是什么?
【问题讨论】:
-
试试
echo urlencode($k);并显示结果 -
它在寡妇中,我通过 wamp @NigelRen 运行代码
-
Windows 使用
"\r\n"作为行尾。 -
所以如果我使用
str_replace("\r\n" , "",$line)可以吗? -
您可以只使用一般的
$line = trim($line);来确保删除任何多余的空格/行结尾。