Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Управляющие последовательности


Автор: CIBRAIKER 23.6.2014, 16:57
В мануале PHP написано, что если строка заключена в двойные кавычки ("), PHP распознает большее количество управляющих последовательностей для специальных символов. Решил попробовать... 
Последовательность - \n. 
Значение - новая строка.
Код

echo "<br>"."Это займет
несколько строк. Переводы строки тоже
выводятся";
echo "<br>"."Это займет\nнесколько строк. Переводы строки тоже\nвыводятся";


Вопрос - почему у меня так ничего не изменилось, почему в 1м случае нет явных переходов, а во 2м случае, почему нет перехода на новую строку после слова займет и тоже? 
ЗЫ: оба примера были взяты с той же документации... 

Автор: AVA12 23.6.2014, 17:52
http://www.umade.ru/resources/specifications/html401/types.html#type-cdata, нуб.

Автор: CIBRAIKER 23.6.2014, 18:07
Цитата(AVA12 @  23.6.2014,  16:52 Найти цитируемый пост)
RTFM, нуб. 
 Можно по русски...

Автор: AVA12 23.6.2014, 19:32
RTFM: анг. "read the... um... following manual!" ("да прочитай уже эту... э-э-э... соответствующую инструкцию!"). Эту аббревиатуру используют в том случае, если ответ на вопрос (например, "почему HTML-документ, отображенный в HTML-браузере, выглядит не совсем так, как обычный текст в обычном текстовом редакторе") очевиден любому, кто удосужился ознакомиться хотя бы с азами используемой технологии (например, с языком разметки HTML). Хорошим тоном является сопроводить такой ответ HTTP-ссылкой на соответствующий раздел соответствующей документации, желательно на языке, заведомо понятном вопрошающему.

Нуб (анг. "noob" - искаж. "newbie" ("новичок")): человек, пренебрегающий изучением основ используемых им технологий (например, языка разметки HTML), пытающийся перескочить сразу через несколько ступеней в обучении и в итоге имеющий весьма туманные и искаженные представления о том, как должна работать эта технология (а зачастую даже не знающий, какая технология используется).

Автор: CIBRAIKER 23.6.2014, 19:55
Был задан вполне конкретный вопрос - почему то то и то то, и на него нужно получить конкретный ответ - потому что то то и то то. В том бреде что ты скинул черт ногу сломит, да и потом я не спрашивал про теги HTML, а спросил про  Управляющие последовательности PHP, поэтому хотелось бы больше конкретики и поменьше всякой каши... smile 

Автор: AVA12 23.6.2014, 20:06
Человек, желающий понять и научиться, обязательно зацепился бы глазом за ключевые слова "символы конца строки" и "символ возврата каретки". Почти наверняка такой человек догадался бы просмотреть исходный код сгенерированного HTML-документа и даже, возможно, сохранить его в файл и посмотреть в шестнадцатиричном редакторе.

У человека, имеющего дело с PHP и web-программированием, таких "конкретных вопросов" будет очень много. Отвечать на каждый такой нубский вопрос - значит потакать лени, плодить халтурщиков и умножать энтропию.

Автор: CIBRAIKER 23.6.2014, 20:38
Вот что мне написал умный человек - "\n - последовательность символов, сигнализирующая системе о необходимости сделать перенос строки в unix-подобных системах. В вашем случае при выводе в браузер для переноса строки пишите <br> а при печати скрипта в консоль используйте \n"
То что мне и было нужно! Всё, сабж в топку.
ЗЫ: а про Ctrl+U уже давно догадались и книжки Стивена Уильяма Хокинга тоже читали.

Автор: Gold Dragon 24.6.2014, 20:42
Цитата(CIBRAIKER @  23.6.2014,  17:57 Найти цитируемый пост)
Последовательность - \n. 
Ты смотришь результат где? В браузере? А что делает браузер? читает твой HTML-код и переводит его в "человеческий" вид, то есть занимается гипертекстовой разметкой. 

А что такое \n? Это управляющий символ. И это значит что он служит не для отображения, а для управления. Из этого следует что никакого отношения это не имеет в HTML-выводу информации... 

А вот если просмотреть код HTML-страницы, или это открыть в текстовом редакторе, то это будет воспринято как переход на новую строку, т.к. ждя текстового редактора это свой "язык" разметки, но не HTML-разметки

Это будет заметно если использовать тег <TEXTAREA>
Если в нём печатать <BR> то это и будет <BR>
А вот перевод на новую строку будет именно \n

По этому чтобы сохранить данные из <TEXTAREA> в базу (или вывести на экран в документе) и сохранить переводы на новую строку, нужно управляющие символы перевести в HTML-размутку (в нашем случае <BR>)
Соответственно, если к примеру нужно будет отредактровать данные, то нужно проделать обратную процедуру

Автор: CIBRAIKER 24.6.2014, 20:52
Спс большое за разъяснения. А как это можно применить или где? Я имею ввиду смысл от них какой, если их браузер не понимает, а исходник пользователю нафиг не нужен?

Автор: Gold Dragon 24.6.2014, 20:57
один пример реальный я тебе указал.. 

другой.. ну например для читаемости MySQL кода пишут так
Код

$sql = "SELECT *\n
             FROM table\n
             WHERE id = 1";

или такое
Код

<table>\n
   <tr>\n
       <td>1111</td>\n
   </tr>\n
</table>

Например если ето просматривать в коде HTML страницы, то будет наглядно всё видно..

 Хотя я это вообще не приемлю.. 
Во-первых, для просмотра есть специальные отладочные вещи, которые сами всё отформатируют
Во-вторых, это только избыточный код

Автор: CIBRAIKER 24.6.2014, 21:04
Терь ясно, пасиб!  smile 
ЗЫ: +1

Автор: Gold Dragon 24.6.2014, 21:12
Главное чтобы помогла в освоении программирования ;)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)