字符串中不可读的字符

问题描述 投票:2回答:1

我编写了一个获取文本并获取三行代码所有人的代码:

<?php
$f = fopen('text.txt' , 'r');
while($line = fgets($f)){
    if($i == 1){
        $j = $line;
    }elseif($i == 2){
        $k = $line;
    }elseif($i == 3){
        $n = $line;
    }
}

text.txt是:

3
ABC
aBD

当我运行下面的代码时,它给我一个奇怪的输出:

echo strlen($k);

[$kABC,但是输出是这个:

5

我知道这5个字符中的一个是进入下一行的"\n",但是另一个是什么?

将非常感谢您的帮助

php text fopen strlen
1个回答
1
投票

由于Windows使用\r\n作为行终止符,因此将在每个字符串中额外增加2个字符。 Linux仅使用\r,因此仅增加1。

要提供通用解决方案,最好使用

$line = trim($line);

将删除所有行终止符。它还将删除前导和尾随空格。

© www.soinside.com 2019 - 2024. All rights reserved.