QRL (Quick URL) class
15 июня 2007
Небольшая презентация моего класса для работы с HTTP.
require_once("inc/qrl.php");
$req = new qrl;
print $req->submit_request("http://www.google.com/") or exit("Ошибка");
15 июня 2007
Небольшая презентация моего класса для работы с HTTP.
require_once("inc/qrl.php");
$req = new qrl;
print $req->submit_request("http://www.google.com/") or exit("Ошибка");
18 мая 2007
Сделал класс для определения Google PageRank.
http://dev.mrkto.com/pagerank/

Скрипт иммитирует работу Google Toolbar для FireFox-а.
URL можно вводить без http://, можно проверить PageRank отдельной странички.
Если page rank для данной странички не существует - вернёт false (здесь - прочерк)
Проверку Яндекс тИЦ вроде реализовать проще - там нет "устрашающего хэша", но пока что на меня никто не ссылается - подождём.
24 апреля 2007
Наконец-то реализовал мультипоточность при работе с сокетами.
Выигрыш примерно в 2 раза с быстрыми серверами, соответственно, если сервер медленный, или контент генерируется на лету (напр. flush()), то грузится будет ещё быстрее.
Последний тест:
Дано: нужно загрузить 500 страниц. Проблема в том, что каждая генерируется на чужом сервере и время загрузки каждой примерно 20 сек. Т.е., если загружать все в цикле, то уйдёт около 3-х часов.
Используя многопоточность при 20 одновременных потоках все странички загрузились за 25 минут (<3сек./страница).
При 40 потоках - за 20 минут. В общем прогресс налицо.
Совместимо с php4, позволяет добавлять задачи на лету, используя callback-функцию (onload)
Пример кода, использующего мой класс multi_qrl:
$multi = new multi_qrl;
$multi->max_threads = 20;
$multi->onload = "req_load";
function req_load(&$multi, &$req, $result)
{
echo $req->URL." ".(($result!==false)?"ok":"fail")."\r\n"; flush();
}
$multi->add_request(new qrl, "http://www.yandex.ru/");
$multi->add_request(new qrl, "http://www.rambler.ru/");
$multi->add_request(new qrl, "http://www.google.ru/");
$multi->add_request(new qrl, "http://www.yahoo.com/");
$multi->add_request(new qrl, "http://www.sellme.ru/");
$multi->add_request(new qrl, "http://www.habr.ru/");
$multi->add_request(new qrl, "http://www.moneynews.ru/");
$multi->run();
Класс распостраняется только с моими разработками. Стоимость проектов от $50.
_________________
Для тех, кто не подписался по RSS:
Когда переходить на ООП? I. Зачем использовать классы вместо функций.
Использование материалов сайта возможно только при указании ссылки на источник.
Copyright © 2007 mrkto.com