Нечитаемые символы в строке - PullRequest
2 голосов
/ 13 марта 2020

я написал код, который получает текст и получает все три строки:

<?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);

$k равен ABC Но вывод таков:

5

один из этих 5 символов "\n", который переходит на следующую строку, а какая еще?

1 Ответ

1 голос
/ 13 марта 2020

Поскольку Windows использует \r\n в качестве завершения строки, это добавит дополнительные 2 символа к каждой строке. Linux использует только \r, так что это всего лишь 1 лишний.

Чтобы предоставить универсальное c решение, было бы лучше использовать

$line = trim($line);

, который удалит любую строку символы завершения. Он также удалит начальные и конечные пробелы.

...