^M в файлах PHP

#linux #format #substitution #eol

#linux #формат #замена #eol

Вопрос:

^M — это значение возврата каретки dos, которое остается после каждой строки при перемещении файла из окна Windows в окно *NIX. Я знаю, как это удалить. Мне любопытно узнать, есть ли какая-либо другая причина, помимо эстетики, по которой это должно быть удалено из PHP-скрипта.

PHP-скрипт отлично работает с этим. Обычно я бы удалил это без колебаний, но не хочу, чтобы мое имя стояло рядом с каждой строкой в команде svn blame. (помимо сути).

Вопрос: Есть ли причина в отношении функциональности, по которой это должно быть удалено, кроме эстетики? Похоже, это ничего не нарушает, чтобы сохранить это. (Назовите мне вескую причину, пожалуйста)

Комментарии:

1. У меня были случаи, когда эти Windows LF генерировали странный результат php, но не могу вспомнить, что именно. Возможно, смесь php / js / html, но опять же, не могу вспомнить. Конечно, интерпретаторы bash и perl пострадали бы в этом случае гораздо больше.

2. Существуют свойства Subversion, решающие эту проблему.

3. Существуют текстовые редакторы Windows, которые позволяют вам выбирать окончания строк. Я рекомендую e-TextEditor, второй лучший текстовый редактор на планете.

Ответ №1:

В целом, все должно быть в порядке. Другие языки придирчивы к окончаниям строк; я видел, например, как это вызывало проблемы в скриптах Perl. Но для PHP я никогда не видел, чтобы это имело большое значение.

Один случай, когда это, по-видимому, может иметь значение, — это многострочные строки, где дополнительные символы будут передаваться на вывод. Это может иметь значение, если ваш вывод не является HTML или XML. Но JS не должен уделять особого внимания посторонним ссылкам, а HTML и XML обычно обрабатывают любые пробелы так же, как один пробел (или во многих случаях вообще игнорируют пробелы). Текстовые области и <pre> элементы и тому подобное могут содержать дополнительные пробелы. Это, пожалуй, единственная проблема, о которой я могу думать.