Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: почему вывод ECHO происходит порциями?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: и полностью тормозит сайт
Алекс2011
Отправлено: 27 Марта, 2011 - 17:57:53
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Приветствую

есть парсер, при работе которого выводится служебная информация о его работе - вывод примитивный echo внутри цикла.

По идее, при каждом проходе цикла должно выводится сообщение, однако выводится порциями по десятку строк.

Скрипт достает данные из база и пишет в базу. При этом внутри цикла есть sleep на 1-3 секунды для простенькой защиты от обнаружения ботов, но скрипт намертво вешает сайт - пока не отработает, сайт недоступен.

Подскажите, в какую сторону смотреть и что читать? ob_end_clean пробовал, если это вообще имеет к этому отношение...

Спасибо!
 
 Top
SAD
Отправлено: 27 Марта, 2011 - 20:42:15
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




Алекс2011 пишет:
ob_end_clean

ройте в этом направлении
 
 Top
OrmaJever Модератор
Отправлено: 27 Марта, 2011 - 21:16:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Да для тогочто бы echo отдавал всё за один раз нужна буферизация
Алекс2011 пишет:
При этом внутри цикла есть sleep на 1-3 секунды для простенькой защиты от обнаружения ботов

А вот это не понятно... Чё этоза защита? Однако


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Okula
Отправлено: 27 Марта, 2011 - 21:27:29
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




Алекс2011 пишет:
При этом внутри цикла есть sleep на 1-3 секунды для простенькой защиты от обнаружения ботов, но скрипт намертво вешает сайт - пока не отработает, сайт недоступен.

Функция sleep() нужна для того чтобы организовать задержку выполнения сценария.
Например при парсинге это удобно тем, чтобы не нагружать внешний ресурс запросами в цикле, чтобы сайт успел отдавать информацию. Достаточно и полсекунды поставить.
 
 Top
Алекс2011
Отправлено: 27 Марта, 2011 - 21:59:05
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




OrmaJever пишет:
При этом внутри цикла есть sleep на 1-3 секунды для простенькой защиты от обнаружения ботов

А вот это не понятно... Чё этоза защита?


при запросах как из пулемета срабатывает "Ой а не робот ли это?" Если одиночными - то парсинг не прерывается. 0,5 пробовал ставить - палюсь.
(Добавление)
OrmaJever пишет:
Да для тогочто бы echo отдавал всё за один раз нужна буферизация


мне как раз не надо "за один раз" - мне надо чтобы информация выводилать при каждом вызове эха, т.е. строка в браузере появлялась каждые 2-3 секунды, а не 50 через минуту.

спасибо
 
 Top
Мелкий Супермодератор
Отправлено: 27 Марта, 2011 - 22:19:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)






-----
PostgreSQL DBA
 
 Top
OrmaJever Модератор
Отправлено: 27 Марта, 2011 - 22:47:34
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




а в чём плюс такой защиты? втом что сервер сам себя нагружает? ПОлучатся запустил скрипт и он в цыкле будет шуршать как шуршик Закатив глазки


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Алекс2011
Отправлено: 27 Марта, 2011 - 23:01:30
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




OrmaJever пишет:
а в чём плюс такой защиты? втом что сервер сам себя нагружает? ПОлучатся запустил скрипт и он в цыкле будет шуршать как шуршик


плюс в том, что сайт, который парсят, не отключает выдачу. А другими средствами защиты я, увы, не владею пока.

А разве sleep создает допнагрузку? возможно, я ошибался, когда считал, что это просто пауза выполнения скрипта с нулевой загрузкой процессора?
 
 Top
OrmaJever Модератор
Отправлено: 27 Марта, 2011 - 23:50:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




да это пауза, но после паузы же цыкл идёт дальше. Тоесть один раз обратился к скрипту и закрыл сайт, а скрипт всё работает А если таких ботов будет хотябы 100?
Я конешно не видел весь скрипт такой защиты но уверен что есть лутшее решение!


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
JustUserR
Отправлено: 28 Марта, 2011 - 01:06:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Алекс2011 пишет:
По идее, при каждом проходе цикла должно выводится сообщение, однако выводится порциями по десятку строк.
В качестве возможной причины осуществления некорректного функционирования предполагаемого PHP-приложения, заключающегося в проведении несоответственной транспортировки сгенерированной группы информационных полей, является автоматическое использование механизма буферазации потока данных, активация действенных составляющих элементов которого производится в дифферентном пониженном базовом элементном уровне трактования; в качестве допустимого варианта решения обозначенной задачи, допустимо использование техологий FastCGI или NPH-CGI соответственно
Алекс2011 пишет:
А разве sleep создает допнагрузку? возможно, я ошибался, когда считал, что это просто пауза выполнения скрипта с нулевой загрузкой процессора?
В действительности осуществление использование предполагаемого функционального объекта, позволяющего обеспечивать приведения текущего локального исполняемого потока в неактивное состояние, предполагает осуществление поддержания канала взаимодействия с целевым инициализирующим родительским процессом web-сервера, обеспечивающим выполнения трансфера информационных полей


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Алекс2011
Отправлено: 28 Марта, 2011 - 01:27:06
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




JustUserR пишет:
В действительности осуществление использование предполагаемого


...что-то с окончаниями не так, а вообще - спасибо.
(Добавление)
SAD пишет:
ob_end_clean

ройте в этом направлении


решение вывода в реальном времени: ob_end_clean ();echo "...";flush ();

спасибо.

вопрос с зависанием сайта пока остается открытым...
 
 Top
JustUserR
Отправлено: 28 Марта, 2011 - 01:56:03
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Алекс2011 пишет:
Что-то с окончаниями не так, а вообще - спасибо
Пожалуйста! В качестве возможных тематических материалов, на основании которых возможно осуществление детального рассмотрения предполагаемых аспектов решения поставленной задачи, допустимо использование следующих информационных источников http://htmlhelp[dot]com/faq/cgifaq[dot]2[dot]html и http://www[dot]fastcgi[dot]com/devkit/doc/fcgi-spec[dot]html


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB