Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Варианты выполнения скрипта.
 
 автор: SaNeKn   (04.01.2007 в 01:14)   письмо автору
 
 

Короче есть такой к вам вопрос!
Вот мне встречались 2 типа сайтов опишу их:
1:
например скрипт выводит

1
2
3
4
5
6
...

и так далее например до 10000 за 10 сек причем когда заходишь на страницу выводится так :
сначала от 1 до 30 например потом выводит до 130 потом до 500 т.е. по частям!
а есть еще второй тип который при заходе на страницу ничего не выводит а как скрипт заканчивает свою работу выводит сразу 10000 строк!
ну так вот, вопрос такой : можно ли настраивать все самому? т.е. хочу чтобы на моем сайте выводилось по частям, или хочу чтобы выводилось все сразу но тока после того как скрипт закончит работу ???? как так сделать ???????????

   
 
 автор: Unkind   (04.01.2007 в 01:20)   письмо автору
 
   для: SaNeKn   (04.01.2007 в 01:14)
 

По частям - это по умолчанию. Если хотите вывести все сразу, то нужно сохранить страницу в буфер обмена:


<?php
//Включаем буферизацию вывода
ob_start();

//Любой код. Допустим тот же цикл, который выводит от 1 до 10000
for($i 1$i <= 10000$i++)
{
echo(
$i."<br />\n");
}

//Выключаем буферизацию и выводим содержимое страницы
ob_end_flush();
?>

   
 
 автор: SaNeKn   (04.01.2007 в 10:28)   письмо автору
 
   для: Unkind   (04.01.2007 в 01:20)
 

да нет, видимо в пхп.ини чето прописано!
вот например такой код :

<?
echo "<pre>";
for(
$i=0$i<10000$i++) echo "$i \n";
echo 
"</pre>";
?>

Запустить на 2 серваках. и вот на одном будет выводится по частям, а на другом сразу, но тока после выполнения! я уже догадываюсь даже че надо в пхп.ини поменять! там я гдето видел buffer_чтото= либо On либо Off помоему там надо менять! я правельно думаю ?

   
 
 автор: ddhvvn   (04.01.2007 в 10:43)   письмо автору
 
   для: SaNeKn   (04.01.2007 в 10:28)
 

правильно

   
 
 автор: SaNeKn   (04.01.2007 в 12:03)   письмо автору
 
   для: ddhvvn   (04.01.2007 в 10:43)
 

так и знал! :) теперь проблема другая, я не имею доступ к пхп ини а в нем есть такая запись :
output_buffering = On
а мне надо чтобы скрипты работали как-будто там написано так :
output_buffering = Off
что делать ? нет ли в пхп такой функции ???

   
 
 автор: ddhvvn   (04.01.2007 в 12:24)   письмо автору
 
   для: SaNeKn   (04.01.2007 в 12:03)
 

Попробуйте в файле .htaccess вашего каталога прописать строчку

  php_flag output_buffering Off

   
 
 автор: SaNeKn   (04.01.2007 в 12:35)   письмо автору
 
   для: ddhvvn   (04.01.2007 в 12:24)
 

всеравно по частям не выводит!

   
 
 автор: Trianon   (04.01.2007 в 15:05)   письмо автору
 
   для: SaNeKn   (04.01.2007 в 12:35)
 

Вообще-то более корректно писать так:

for($i=0; $i<10000; $i++, flush()) echo "$i\r\n"; 

   
 
 автор: SaNeKn   (05.01.2007 в 18:38)   письмо автору
 
   для: Trianon   (04.01.2007 в 15:05)
 

спасибо, заработало!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования