Перенос строки при использовании fgetc

С.Хольцнер в книге "PHP в примерах" (стр.234) отмечает, что при использовании функции fgetc (посимвольное чтение файлов), необходимо заменять символ окончания строки "/n" на тег

<br>

1. Поясните, пожалуйста, почему. Символ "/n" не распознаётся функцией, как перенос?
2. Почему именно для fgetc?
3. Всегда ли нужно делать это вручную с помощью оператора if (как представлено в примере на стр. 235)?

<?php
$handle = fopen ("file.txt", "rb");
while ($char = fgetc($handle)) {
    if ($char == "\n") {
        $char = "<br>";
    }
    echo $char;
}
fclose ($handle);

Спасибо!

Key Words for FKN + antitotal forum (CS VSU):

vedro-compota's picture

У Хольцнера так:

if ($char == "\n") 
{ 
  $char = "<BR>"; 
} 
echo $char; 

Дело в том, что символ переноса строки из текстовых файлов не отображается в браузере.
А потому Хольцнер показывает, что при выводе такого символа на страницу имеет смысл вообще заменить его на подходящий тэг (переноса строки).

_____________
матфак вгу и остальная классика =)

vedro-compota's picture

Символ "/n" не распознаётся функцией, как перенос?

во-первых, это символ "\n" (обратный слэш а не прямой).
--- функция fgetc лишь читает символы из файла, она читает их "как есть". В её задачу входит только загрузка очередного символа из текстового файла в память программы.

_____________
матфак вгу и остальная классика =)

vedro-compota's picture

Почему именно для fgetc?

просто пример с fgetc.

Всегда ли нужно делать это вручную с помощью оператора if (как представлено в примере на стр. 235)?

если ситуация как в коде выше -- то да, всегда.

_____________
матфак вгу и остальная классика =)