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


Автор: ArnoldLane 29.9.2012, 15:09
Только-только приступил к изучению php. Столкнулся вот с чем:

Код

    <?php
    echo "строка 1\nстрока 2";
    ?>



отображение в браузере:
строка 1 строка 2
Хотя предполагалось вот так:
строка 1
строка 2
В чем загвоздка? Что-то нужно поправить в ini-файле интерпретатора? Или где? Или сколько? smile)
P.S. Это кстати не единственная странность. Вот еще примерчик:

Код

    <?php
    $number = 0.1;
    printf("%2.2f\n", $number);
    ?>



отображение в браузере:0.10
Хотя предполагалось вот так: 0.10
То есть символ пробела к строке не прибавился!

Автор: bars80080 29.9.2012, 16:14
Цитата(ArnoldLane @  29.9.2012,  15:09 Найти цитируемый пост)
отображение в браузере:
строка 1 строка 2
Хотя предполагалось вот так:
строка 1
строка 2
В чем загвоздка?

если и преполагалось, то явно против стандартов html. в браузере отображается гипертекстовый язык разметки, в нём символ перевода на другую строку отображается пробелом. а перевод достигается либо блочной структурой, либо тэгом <br />

Автор: ArnoldLane 29.9.2012, 17:19
Цитата(bars80080 @ 29.9.2012,  16:14)
Цитата(ArnoldLane @  29.9.2012,  15:09 Найти цитируемый пост)
отображение в браузере:
строка 1 строка 2
Хотя предполагалось вот так:
строка 1
строка 2
В чем загвоздка?

если и преполагалось, то явно против стандартов html. в браузере отображается гипертекстовый язык разметки, в нём символ перевода на другую строку отображается пробелом. а перевод достигается либо блочной структурой, либо тэгом <br />

Просто пока я не до конца понимаю суть. Как я это понимаю:
1. Интерпретатор PHP выполняет все инструкции кода, в том числе перводит текст на новую строку, затем передает полученный текст серверу.
2. Сервер полученный текст передает браузеру уже с html тэгами.
Хорошо. Первый пример, это скорее всего просто мое недопонимание принципов работы связки интерпретатор-сервер, а второй пример почему не работает? Это же все взято из учебников.

Автор: ksnk 29.9.2012, 19:29
ArnoldLane, сделай "просмотр кода страницы". Там будет отображаться все так, как написано в php? включая все вставленные переносы строк.

Автор: ArnoldLane 3.10.2012, 10:55
Цитата(ksnk @ 29.9.2012,  19:29)
ArnoldLane, сделай "просмотр кода страницы". Там будет отображаться все так, как написано в php? включая все вставленные переносы строк.

С этим худо ли бедно разобрался. А вот что со второй частью вопроса?

Автор: bars80080 3.10.2012, 13:43
Цитата(ArnoldLane @  3.10.2012,  10:55 Найти цитируемый пост)
А вот что со второй частью вопроса? 

это?


Цитата(ArnoldLane @  29.9.2012,  15:09 Найти цитируемый пост)
<?php
    $number = 0.1;
    printf("%2.2f\n", $number);
    ?>

отображение в браузере:0.10
Хотя предполагалось вот так: 0.10
То есть символ пробела к строке не прибавился! 

а где вы вставляете пробел в начало строки?

Автор: ArnoldLane 3.10.2012, 20:06
Цитата(bars80080 @ 3.10.2012,  13:43)
Цитата(ArnoldLane @  3.10.2012,  10:55 Найти цитируемый пост)
А вот что со второй частью вопроса? 

это?

Да
Цитата(bars80080 @ 3.10.2012,  13:43)

Цитата(ArnoldLane @  29.9.2012,  15:09 Найти цитируемый пост)
<?php
    $number = 0.1;
    printf("%2.2f\n", $number);
    ?>

отображение в браузере:0.10
Хотя предполагалось вот так: 0.10
То есть символ пробела к строке не прибавился! 

а где вы вставляете пробел в начало строки?

Согласно написанного в учебнике:
"...Заполнитель. Символ-заполнитель, используемый для дополнения строки
до заданной длины (этот параметр описывается ниже). Параметр
заполнитель может содержать пробел (по умолчанию), 0 или любой другой
символ, которому предшествует символ одинарной кавычки. Часто в качестве
символа-заполнителя используется значения 01 или 0001...."

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