Что такое \ r и \ n значение в PHP? PHP Lang
что они называются \ r \ n и есть ли учебник, который их объясняет?
Это «возврат каретки» и «линия подачи» соответственно. Как правило, в Windows вам нужно обе вместе, чтобы представить терминатор линии: «\ r \ n», тогда как для большинства (все?) Unix-систем достаточно «\ n».
См. Запись в Wikipedia Newline для получения более подробной информации о капризах различных систем.
См. Руководство по PHP для получения дополнительной информации об эвакуационных последовательностях в целом и других доступных в PHP.
Многие другие языки (например, C, C ++, C #, Java, Perl, Python, Ruby) используют одни и те же escape-последовательности для возврата каретки и строки, но все они указаны для отдельного языка. (Другими словами, это язык специфический, но ответ будет одинаковым для многих языков.)
\r
– возврат каретки
\n
– это символ новой строки
Они доступны на многих других языках помимо PHP.
Это escape-последовательности . \n
– это символ новой строки, а \r
– возврат каретки.
В Windows большинство текстовых редакторов имеют новую строку как \ r \ n, а в unix – \ n
\r
– Возврат каретки \n
– Линейный канал (или новая строка ).
В системах Windows они вместе создают новую строку (т.е. каждый раз, когда вы нажимаете кнопку ввода, ваше исправление получится \r\n
).
В PHP, если вы откроете текстовый файл в стиле Windows, вы получите \r\n
в конце абзацев / строк, если бы вы нажали enter. Если это текстовый файл в стиле Unix, вы получите только
.
Не ответ на ваш вопрос, но, тем не менее, актуальный: я бы рекомендовал использовать константу PHP_EOL всякий раз, когда вы хотите вставить новую строку. Константа PHP_EOL содержит правильный новый символ (строки) для платформы, на которой выполняется сценарий (\ n в Unix, \ r \ n в Windows).
\n
– это новая строка или строка, другая сторона \r
– возврат каретки. Они отличаются тем, что их использует. Windows использует \r\n
для обозначения нажатия клавиши ввода, в то время как Linux и Unix используют \n
для обозначения нажатия клавиши ввода.
В Unix и во всех Unix-подобных системах
– это код для конца строки, \r
ничего особенного не имеет. В старых системах Mac (pre-OS X) вместо этого использовался код конца строки. \r\n
– стандартное прерывание строки для текстовых форматов в Интернете.
\r
передает карету назад влево до тех пор, пока она не окажется на самой левой остановке, \n
заставит ролик закрутить одну линию (более быстрая операция). Вот почему у вас всегда есть \ r до \ n, так что ролик может двигаться, пока каретка все еще идет влево.
ruphp.com
php — Символ перевода строки PHP_EOL
Stack Overflow на русском- 0
- +0
- Тур Начните с этой страницы, чтобы быстро ознакомиться с сайтом
- Справка Подробные ответы на любые возможные вопросы
- Мета Обсудить принципы работы и политику сайта
- О нас Узнать больше о компании Stack Overflow
- Бизнес Узнать больше о поиске разработчиков или рекламе на сайте
- Войти Регистрация
-
текущее сообщество
PHP: Альтернативный синтаксис управляющих структур
Consider the following hypothetical PHP example:<?php
$bar = ‘bar’;
$foo = ‘foo’;
if (isset(
$bar)):if (isset($foo)) echo «Both are set.»;
elseif (isset($foo)):
echo «Only ‘foo’ is set.»;
else:
echo «Only ‘bar’ is set.»;
endif;
?>
Disconsider the dumb logic and focus on the elseif line. If you try it yourself you will get a PHP EXCEPTION error saying: syntax error, unexpected ‘:’ .
Now, you may think the fix is to have the sub-if enclosed in between { } instead of being a single line statement, like this:
<?php
$foo = ‘foo’;
if (isset($bar)):
if (isset($foo)) {
echo «Both are set.»;
}
elseif (isset($foo)):
echo «Only ‘foo’ is set.»;
else:
echo «Only ‘bar’ is set.»;
endif;
?>
Wrong! The error remains. Exactly the same EXCEPTION as before…
Well, here is what I found: if you put a semicolon (;) AFTER the curly bracket (}) which resides immediately before the elseif statement, then the error is gone! Try it:
<?php
$foo = ‘foo’;
$bar = ‘bar’;
if (isset($bar)):
if (isset($foo)) {
echo «Both are set.»;
};
elseif (isset($foo)):
echo «Only ‘foo’ is set.»;
else:
endif;
?>
Weird enough, if you go back to the first example and DOUBLE the semicolon immediately before the elseif statement, it will also work:
<?php
$foo = ‘foo’;
$bar = ‘bar’;
if (isset($bar)):
if (isset($foo)) echo «Both are set.»;;
elseif (isset($foo)):
echo «Only ‘foo’ is set.»;
else:
echo «Only ‘bar’ is set.»;
endif;
?>
But, it doesn’t end there. You can also do this:
<?php
$foo = ‘foo’;
$bar = ‘bar’;
if (isset($bar)):
if (isset($foo)): echo «Both are set.»;
elseif (isset($foo)):
echo «Only ‘foo’ is set.»;
else:
echo «Only ‘bar’ is set.»;
endif;
However, in this last example, the logic gets totally scrambled! The elseif will now belong to the sub-if instead of the first if, and the rest of the logic will all behave as a «one single statement» in response to the first if only. Very confusing and error prone (be careful).
The differences are very subtle and can deceive the eyes (especially while debugging). For this reason, I strongly suggest the first example from this answer: when using IF-ELSEIF blocks (AKA «Alternative Syntax»), if another IF is required inside it, enclose it in between {} and don’t forget to add a semicolon after the last }. Example:
<?php
if (isset($bar)):
if (isset($foo)) {
echo «Both are set.»;
};
?>
Maybe the truth is that someone screwed up in the language parsing process for those PHP Block Alternative Statements or failed to document this very important detail!
www.php.net