Оглавление

5. Вывод результатов работы скрипта

Вывести результат можно с помощью двух операторов:
□  echo — мы уже применяли его для вывода строчки "Hello, world":

    echo "Hello, world";


Можно вывести сразу несколько строк, указав их через запятую:

    echo "Строка 1", "Строка 2";


print — этот оператор позаимствован из языка Perl:

print "Hello, world";


Большие блоки текста текста можно выводить, например, следующим образом:


   <?php
    echo 'Строка1<br>
    Строка2<br>
    Строка3<br>
    ';
   ?>

Кроме того, можно воспользоваться синтаксисом, который условно называют "документ здесь":


<?php
echo <<<METKA
Строка1<br>
Строка2<br>
Строка3<br>
METKA;
?>


В этом примере многострочный текст располагается между метками (метка):

echo <<<METKA
...
METKA;


Вторая (закрывающая) метка должна обязательно находиться на отдельной строке в самом ее начале. После этой метки должна стоять точка с запятой.

 
 Для ускорения работы операторы производят буферизацию данных. Иными словами, вначале строка помещается в память. Когда количество данных достигает определенной величины, данные отправляются  Web-браузеру. Для примера выведем 5 строк, но перед выводом каждой строки укажем интерпретатору "заснуть" на одну секунду:

 

<?php
for ($i=1; $i<6; $i++) {
   echo "Строка ", $i, "<br>";
   sleep(1); // "Засыпаем" на 1 секунду
}
?>


Результат выполнения этого скрипта мы увидим весь целиком только через 5 секунд. В некоторых случаях необходимо отправлять данные сразу в Web-браузер. Иначе пользователь может подумать, что скрипт "завис". Вывести данные сразу позволяет функция

flush()

 указанная после оператора вывода:

 

<?php
for ($i=1; $i<6; $i++) {
   echo "Строка ", $i, "<br>";
   flush(); // Выводим строку сразу в Web-браузер
   sleep(1); // "Засыпаем" на 1 секунду
}
?>

 

В этом случае строки будут выводиться сразу, а не все одновременно, как это было в предыдущем примере. Следует заметить, что в некоторых случаях (например, если указано значение в директиве output_buf fering) необходимо дополнительно вызывать функцию

ob_flush()
<?php
for ($i=1; $i<6; $i++) {
   echo "Строка ", $i, "<br>";
   flush(); // Выводим строку сразу в Web-браузер
   ob_flush();
   sleep(1); // "Засыпаем" на 1 секунду
}
?>

 

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити