Перезаписать данные ob_flush(). Есть ли методы получше?
В общем для обновления данных использую ява скрипты. Может есть способы получше?
<div id="str"></div> <? for ($i = 1; $i <= 10; $i++) { ?> <script> str.innerHTML = '<?= $i ?>'; </script> <? flush(); ob_flush(); sleep(1); } |
<div id="str"></div> <? for ($i = 1; $i <= 10; $i++) { ?> <script> str.innerHTML = '<?= $i ?>'; </script> <? flush(); ob_flush(); sleep(1); }
Дополнительно:
flush() и ob_flush() поменяйте местами, и вот так будет правильно!
А вот возьмите съешьте палку колбасы, а потом пойдите в магазин, найдите именно эту съеденую палку колбасы и купите её. Можно так в реальной жизни? И прочитайте документацию, что именно опустошают первая и вторая команды. Тогда станет понятно.
А в примере с колбасой, я так полагаю - это скорее у двоих есть информация какая колбаса нужна, мы удаляем у первого, и удаляем у второго, но, после отправки.
<script> str.innerHTML = '<?= $i ?>'; </script> |
<script> str.innerHTML = '<?= $i ?>'; </script>
Что изменится, если просто написать <?= $i ?>, без вот этих "джава скриптов"?
Смотри, тут на тупые вопросы дают тупые ответы. Стоило хотя бы расписать что ты делаешь, то есть какую задачу ты решаешь. Например, я в вопросе вижу кусок php-говнокода, который пытается иммитировать работу js. Ты понимаешь как он будет работать? Смотри, php работает следующим образом: приходит запрос, вебсервер берет его и пихает в php, php отработал запрос, выдал результат и умер. Результатом может быть все что угодно, в твоем случае это html. Ты на него пытаешься повесить работу JS. Страница у тебя будет крутиться в загрузке, при этом на странице в цикле будет моргать таймер. Но PHP не асинхронный чтобы что-то еще делать в этот момент.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для перезаписи вывода буфера в PHP можно использовать функцию ob_flush(). Она позволяет сбросить буфер вывода и отправить его клиенту. Однако, есть и другие методы, которые могут быть более эффективными в определенных случаях.
Один из таких методов - использование более гибкого и мощного класса Output Buffering в PHP. Этот класс позволяет управлять не только выводом буфера, но и его содержимым, размером, временем жизни и другими параметрами. Для использования Output Buffering в PHP можно создать объект этого класса и вызывать его методы для управления выводом.
Пример использования Output Buffering в PHP:
// Включаем буферизацию вывода ob_start(); // Ваш код здесь // Получаем содержимое буфера $output = ob_get_contents(); // Очищаем буфер ob_clean(); // Ваш код здесь // Отправляем содержимое буфера клиенту echo $output; // Завершаем буферизацию вывода ob_end_flush();
Этот метод более гибкий и позволяет более тонко настраивать работу с буфером вывода. Однако, следует помнить, что обращение к буферу вывода может повлиять на производительность приложения, поэтому необходимо использовать его с осторожностью и только там, где это действительно необходимо.