2017-01-04 2 views
0
  • Код в двойных кавычек и по-прежнему не работает.
  • I already read this post
  • Я использую Atom и я на локальном хосте (если это делает никакой разницы)
  • I redownloaded Atom (в случае, если что-то происходит с настройками) и это не помогло

Вот код:PHP новый символ строки ( n) Не работает

<?php 
$firstName = 'David'; 
$lastName = "Powers"; 
$title = '"The Hitchhiker\'s Guide to the Galaxy"'; 
$author = 'Douglas Adams'; 
$answer = 42; 
$newLines = "\r\n\r\n"; 

$fullName = "$firstName $lastName |"; 
$book = "$title by $author"; 

$message = "Name: $fullName $newLines"; 
$message .= "Book: $book \r\n\r\n"; 
$message .= "Answer: $answer"; 

echo $message; 
echo "Line 1\nLine 2"; 

Выход все одна линия, но при просмотре источника новых линий работают

Name: David Powers | Book: "The Hitchhiker's Guide to the Galaxy" by Douglas Adams Answer: 42Line 1 Line 2 
+3

HTML не распознает новые строки, вам нужно использовать '
' для печати новых строк. Вы можете использовать функцию 'nl2br()' для этого, например 'echo nl2br ($ message);' – Qirel

+0

Выполняете ли вы код и просматриваете вывод в командной строке или в своем браузере? – dave

+0

http://stackoverflow.com/a/588362/1220930 – Timurib

ответ

4

Это первое, что вы узнаете, если вы учитесь даже из книги PHP 5 For Dummies. HTML не уважает новую строку или вкладку или несколько пробелов. Вы должны использовать <br /> для новых линий.

preview
* Sourced от PHP 5 For Dummies by Janet Valade.

Изменить код:

<?php 
$firstName = 'David'; 
$lastName = "Powers"; 
$title = '"The Hitchhiker\'s Guide to the Galaxy"'; 
$author = 'Douglas Adams'; 
$answer = 42; 
$newLines = "<br /><br />"; 

$fullName = "$firstName $lastName |"; 
$book = "$title by $author"; 

$message = "Name: $fullName $newLines"; 
$message .= "Book: $book <br /><br />"; 
$message .= "Answer: $answer"; 

echo $message; 
echo "Line 1<br />Line 2"; 

Если вы просто выбираете для компоновки текста на основе, вы можете установить заголовок в браузере, чтобы уважать его как обычный текстовый файл. Для этого вам необходимо:

header("Content-type: text/plain"); 

Это будет отображаться без какого-либо HTML.

+0

Я вижу. Я получил это прямо из курса Lynda на Intro PHP. Я пошел и слушал курс снова, прочитав комментарии каждого (интересно, почему это было бы в курсе, если вы не сможете использовать его для отображения в браузере) и понял, что я пропустил его комментарий: «Браузеры не отображают возврат каретки и новые строка символов ". Спасибо, ваш вклад помогает. – Padawan

1

По умолчанию при запуске скрипта PHP для типа содержимого результата установлено значение text/html. Когда браузеры отображают HTML, символы новой строки обычно не соблюдаются, их обрабатывают как любые другие пробелы.

Если вы хотите, чтобы все ваши выходные форматы оставались неизменными, а вы не отправляете HTML, сообщите обозревателю, что вы отправляете простой текст. Поместите это в начале кода:

header("Content-type: text/plain"); 
+0

Хорошо, полезно знать. Спасибо. – Padawan

+0

Вопрос: ... почему они даже потрудились научить его (при использовании браузера для вывода в своих примерах), если он не работает нигде, кроме исходного кода? Я просто потратил 2 часа, пытаясь понять это, затем вернулся к видео Lynda и успокоился; он в основном сказал то же самое: «Браузеры не отображают новые строковые символы». DOH! – Padawan

+0

Я не знаю, кто «они». – Barmar

1

Как известно, Правеен Кумар упоминает, как печатать новые линии в эхо.

Но если вы все же хотите использовать управляющие последовательности затем использовать print_f Вы можете использовать другие управляющие последовательности, как \t,\n в printf.

<?php 
$firstName = 'David'; 
$lastName = "Powers"; 
$title = '"The Hitchhiker\'s Guide to the Galaxy"'; 
$author = 'Douglas Adams'; 
$answer = 42; 
$newLines = "\r\n\r\n"; 

$fullName = "$firstName $lastName |"; 
$book = "$title by $author"; 

$message = "Name: $fullName $newLines"; 
$message .= "Book: $book \r\n\r\n"; 
$message .= "Answer: $answer"; 

printf ($message); 
printf ("Line 1\nLine 2"); 
+0

Добавлено хорошее форматирование ... ':)' Надеюсь, это хорошо. –

Смежные вопросы