Недавно я обнаружил, что строки кода, содержащие только «CR» вместо «CRLF» или «LF» в конце строки, заставляют PHP вести себя странно, а именно видеть две строки как одну, игнорировать CR или, точнее, интерпретируя это как то, что оно есть: возврат каретки, но не перевод строки.
Раньше у меня никогда не было этой проблемы, но в последнее время я обнаружил, что notepad ++ иногда ставит только CR, когда я нажимаю «Ввод», чтобы перейти на новую строку ... это приводит к тому, что скрипт ведет себя плохо.
Например, этот скрипт Hello World отлично работает, когда строки снабжены LF или CRLF, но падает только с CR (по крайней мере, я воспроизвел эту проблему как на серверах peer1, так и на серверах hostgator — у кого-то еще есть другой опыт?)...
<?php
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.cnn.com/" );
?>
и я получаю эту ошибку:
Неустранимая ошибка: вызов неопределенной функции phpheader() в /home/bernatch/public_html/test-redir-cr.php в строке 1
Очевидно, что PHP видит код <?php
и функцию заголовка как находящиеся в одной строке...
Мой вопрос: а) есть ли способ заставить PHP интерпретировать один CR как действительно другую строку
or
б) есть ли способ заставить блокнот ++ вводить CRLF или LF всякий раз, когда я нажимаю Enter?