powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / информировать пользователя о начале экспорта данных в PHP
15 сообщений из 40, страница 2 из 2
информировать пользователя о начале экспорта данных в PHP
    #37757738
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?,
Проблема сейчас даже с этим кодом. Вывод осуществляется, после окончания цикла.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
	ini_set('output_buffering', 0);
		ini_set('zlib.output_compression', 0);	
		

		ob_start();

		for ($i=0; $i<5; $i++) {
  			echo $i;
  			ob_flush();
  			flush();
  			sleep(1);
		}
		ob_end_flush();		
...
Рейтинг: 0 / 0
информировать пользователя о начале экспорта данных в PHP
    #37757744
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыла уточнить, что это код вызвается в котроллере Zend Framework. Мне кажется, что проблема в этом.
...
Рейтинг: 0 / 0
информировать пользователя о начале экспорта данных в PHP
    #37757756
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вынес в отдельный скрипт код, весь код:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<?php
ini_set('output_buffering', 0);
ini_set('zlib.output_compression', 0);	
		
ob_start();
for ($i=0; $i<5; $i++) {
	echo $i . '<br/>';;
  	ob_flush();
  	flush();
  	sleep(1);
	}
ob_end_flush();		
...
Рейтинг: 0 / 0
информировать пользователя о начале экспорта данных в PHP
    #37757839
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_2005,

а попробуйте сделать:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<?php
ini_set('output_buffering', false);  
ini_set('zlib.output_compression', false);
for ($i=0; $i<100; $i++) {
    for ($j = 1; $j < 100 ; $j++) print $j."\n";
    print '<br/>';
    flush();
    usleep(1000000*0.1);
}
die();


и потом скажите, почему же ваш "не работает" а данный скрипт работает
...
Рейтинг: 0 / 0
информировать пользователя о начале экспорта данных в PHP
    #37757878
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон забыл на написать данный скрипт работает в отдельном скрипте, но не работает в контроллере Zend Framework.
<?php
ini_set('output_buffering', 0);
ini_set('zlib.output_compression', 0);

ob_start();
for ($i=0; $i<5; $i++) {
echo $i . '<br/>';;
ob_flush();
flush();
sleep(1);
}
ob_end_flush();
...
Рейтинг: 0 / 0
информировать пользователя о начале экспорта данных в PHP
    #37757881
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь, что ввел в заблуждение, ранее в сообщении о том, что я вынес в отдельны скрип код из контроллера, я забыл написать, что он работает.
...
Рейтинг: 0 / 0
информировать пользователя о начале экспорта данных в PHP
    #37758007
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РенатOLEG_2005,

а попробуйте сделать:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<?php
ini_set('output_buffering', false);  
ini_set('zlib.output_compression', false);
for ($i=0; $i<100; $i++) {
    for ($j = 1; $j < 100 ; $j++) print $j."\n";
    print '<br/>';
    flush();
    usleep(1000000*0.1);
}
die();


и потом скажите, почему же ваш "не работает" а данный скрипт работает

Скажите, пожалуйста, ваш код работает, если в php.ini output_buffer = 4096?
...
Рейтинг: 0 / 0
информировать пользователя о начале экспорта данных в PHP
    #37758018
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно, данный код работает только, если в php.ini output_buffer = 0. ini_set('output_buffering', 0) почему-то не переопределяет данный параметр, например, если задать его в php.ini 4096 код перестает работать, а get_ini('output_buffering') возвращает 4096, после ini_set('output_buffering', 0);
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<?php 
ini_set('output_buffering', 0);
ini_set('zlib.output_compression', 0);	
		
ob_start();
for ($i=0; $i<5; $i++) {
	echo $i . '<br/>';;
  	ob_flush();
  	flush();
  	sleep(1);
	}
ob_end_flush();	
...
Рейтинг: 0 / 0
информировать пользователя о начале экспорта данных в PHP
    #37758398
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по этой ссылке http://php.net/manual/en/configuration.changes.modes.php нельзя переопределить output_buffering с помощью ini_set. Пока непонятно, почему код не работате, если в php.ini output_buffering = 4096, но работает, если output_buffering = 0 и что можно сделать, чтобы код работал, когда output_buffering = 4096.

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
ini_set('output_buffering', 0);
echo ini_get('output_buffering');
exit();
ini_set('zlib.output_compression', 0);	
		
ob_start();
for ($i=0; $i<5; $i++) {
	echo $i . '<br/>';
  	ob_flush();
  	flush();
  	sleep(1);
	}
ob_end_flush();		
...
Рейтинг: 0 / 0
информировать пользователя о начале экспорта данных в PHP
    #37758432
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы код работал при output_buffering = 4096 в php.ini заменил:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
ob_start();
for ($i=0; $i<5; $i++) {

	echo $i, '<br/>';
  	ob_flush();
  	flush();
  	sleep(1);
	}
ob_end_flush();		



На код:


Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
ob_start();
for ($i=0; $i<5; $i++) {

	echo str_pad('', 4096), $i, '<br/>';
  	ob_flush();
  	flush();
  	sleep(1);
	}
ob_end_flush();		



Может быть у кого-нибудь есть идея лучше?
...
Рейтинг: 0 / 0
информировать пользователя о начале экспорта данных в PHP
    #37758458
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чуть лучше наверное, так:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
ob_start();
for ($i=0; $i<5; $i++) {

	echo str_pad('', ini_get('output_buffering')), $i, '<br/>';
  	ob_flush();
  	flush();
  	sleep(1);
	}
ob_end_flush();		



Все равно, по-моему, не очень красиво.
...
Рейтинг: 0 / 0
информировать пользователя о начале экспорта данных в PHP
    #37759549
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для того, чтобы работало в контроллере Zend Framework, можно добвить в Bootstrap.php, что-то вроде этого:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
	protected function _initFront()
	/**
	 * hint to the dispatcher that it should not use output buffering to capture output generated by action controllers.
	 *  By default, the dispatcher captures any output and appends it to the response object body content. 
	 */
	{
		$frontController = Zend_Controller_Front::getInstance();
		$frontController->setParam('disableOutputBuffering', 1);		
	}
...
Рейтинг: 0 / 0
информировать пользователя о начале экспорта данных в PHP
    #37760460
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_2005Чуть лучше наверное, так:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
ob_start();
for ($i=0; $i<5; $i++) {

	echo str_pad('', ini_get('output_buffering')), $i, '<br/>';
  	ob_flush();
  	flush();
  	sleep(1);
	}
ob_end_flush();		



Все равно, по-моему, не очень красиво.
Интересно, а как обычно решают эту задачу. Есть ли вариан лучше? Может быть кто-нибудь сталкивался с подобными проблемами?
...
Рейтинг: 0 / 0
информировать пользователя о начале экспорта данных в PHP
    #37760533
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLEG_2005,

что значит - получше?
...
Рейтинг: 0 / 0
информировать пользователя о начале экспорта данных в PHP
    #37760598
OLEG_2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется добавление str_pad('', ini_get('output_buffering')) не очень красивым и интуитивно понятным решением.
...
Рейтинг: 0 / 0
15 сообщений из 40, страница 2 из 2
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / информировать пользователя о начале экспорта данных в PHP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]