Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Как загрузить интернет и комп php?
цитата
18/09/08 в 15:46
 add
Здравствуйте.
У меня есть
- скрипт, который парсит в большом количестве
- мощный инет (240 мбит/с) и компьютер
- денвер


Вот кусок кода:
Код:

for(...)
{
...
   $file_hendel=@fopen($url, "r");
   $html = @fread($file_hendel, 5000);
   @fclose($file_hendel);
...
}



Но интернет и компьютер скрипт не нагружает. Т.е. я хочу чтобы скрипт нагружал мой инет и компьютер на 90%. Как можно этого добиться?
цитата
18/09/08 в 15:49
 ibiz
многозадачностью
цитата
18/09/08 в 15:53
 add
ibiz, это запустить скрипт много раз?
цитата
18/09/08 в 16:01
 dDan
240 Мбит icon_eek.gif icon_eek.gif icon_eek.gif icon_eek.gif icon_eek.gif icon_eek.gif
цитата
18/09/08 в 16:13
 add
dDan, да и такие скорости есть! ;)
цитата
18/09/08 в 16:14
 add
Так я правильно понял, что нужно просто запустить скрипт много раз?
цитата
18/09/08 в 16:23
 Alexs
да а вобше такие выеши делают не на php а на perl на порядо быстрее будет работать
цитата
18/09/08 в 16:30
 add
Я бы сделал на perl, если бы его знал... icon_sad.gif

Сейчас у меня вот так примерно делаются потоки:
Код:
for(...)
{
...
echo "
    <iframe src='http://site.ru/potok_generator.php?potok=".$n."' width='210' height='30' scrolling='auto' frameborder='1'> </iframe>
";
...
}


Я его тестил, в ie вообще не изменяется скорость, а в ff она в начале увеличивается, но потом падает и работает очень медленно все равно...

Как можно более правильно это реализовать? Может нужен тег не iframe?
цитата
18/09/08 в 17:53
 -=Faraon=-
Может в самом скрипте не предусмотренно одновременное выполнение нескольких копий поэтому что 1 что 20 делают одну и туже работу.
Попробуй запустить в командной строке N копий Код:
z:/usr/bin/ /lalal/script.php
цитата
18/09/08 в 17:54
 _s_[sov]
ibiz писал:
многозадачностью

скорее многопоточность icon_smile.gif
цитата
18/09/08 в 18:24
 add
-=Faraon=-,
z:/usr/bin/ z:/home/site.ru/www/potok_generator.php
Запустил, открылась папка z:/usr/bin/ и все icon_sad.gif
цитата
18/09/08 в 18:35
 -=Faraon=-
ну уставший я мешки всю ночь грузил icon_smile.gif
z:\usr\bin\php z:\home\site.ru\www\potok_generator.php
догадаться надо только! icon_smile.gif
поправил!

Последний раз редактировалось: -=Faraon=- (18/09/08 в 20:13), всего редактировалось 2 раз(а)
цитата
18/09/08 в 19:18
 add
Просто открылся и закрылся exe...
цитата
18/09/08 в 20:14
 Pentarh
расширение пхп pcntl в помощь (хотя работает ли это на виндах?)
или curl_multi

или просто тупо руками запустить штук сто скриптов.

причем тут денвер не знаю. можно и из командной строки пускать.
цитата
18/09/08 в 20:28
 -=Faraon=-
Всё там работает
слеши просто не виндовские поставил!
z:\usr\bin\php z:\home\site.ru\www\potok_generator.php
вот рабочий!
pcntl работает!
цитата
18/09/08 в 21:03
 add
-=Faraon=-:
У меня загружается exe файл и закрывается сразу.
А что делает эта команда?

Pentarh: сейчас читаю на счет curl...
цитата
18/09/08 в 21:17
 -=Faraon=-
тыб уже стукнул и всё бы давно заработало. icon_smile.gif
цитата
18/09/08 в 21:24
 Pentarh
Конечно писк профессионализма это неблокирующиеся сокеты и циклы select-read/select-write icon_mrgreen.gif без всяких там форков

открываешь штук 100 сокетов, ставишь неблокирующий режим и в цикле начинаешь их опрашивать, писать в них запрос, читать по кускам ответ. smail88.gif

на перле вообще пиздато такие финты делать. он для этого больше подходит.
цитата
18/09/08 в 23:49
 add
спасибо -=Faraon=- и Pentarh за помощь!
Сейчас попробую несколько способов

Pentarh а есть примеры скриптов которые с помощью сокетов работают?
pcntl не пойдет у меня win xp...
цитата
19/09/08 в 01:00
 Pentarh
Мои личные примеры на перле. Вот, порылся, нашел кое что.

Я правда сам не знал, что в пхп5 мультиплекс удобней реализован.

http://www.seoblog.com.ua/2007/03/20/multiplexing-in-php/

Но это в любом случае низкоуровневая работа с сокетами. Тебе самому прийдется эмулировать HTTP-взаимодействие. На phpclasses.net можно найти готовые классы для составления HTTP-запроса (хотя хули там составлять) и парсинга ответа.

Короче это намного сложнее чем $var=file('http://domain.com/url.txt'); icon_mrgreen.gif


Эта страница в полной версии