<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Комментарии на: QRL (Quick URL) class</title>
	<atom:link href="http://mrkto.com/qrl_class/feed/" rel="self" type="application/rss+xml" />
	<link>http://mrkto.com/qrl_class/</link>
	<description>Программирование, PHP, дизайн, Парсинг, граббинг</description>
	<pubDate>Fri, 18 May 2012 06:24:54 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
		<item>
		<title>От: mrkto</title>
		<link>http://mrkto.com/qrl_class/#comment-30</link>
		<dc:creator>mrkto</dc:creator>
		<pubDate>Thu, 13 Sep 2007 21:05:22 +0000</pubDate>
		<guid isPermaLink="false">http://mrkto.com/qrl_class/#comment-30</guid>
		<description>Сначала я оформлял всё как функции с передачей аргументов по ссылке.
Была функция для парсинга и исправления url (как parse_url),
функция парсинга html-тэгов (разбора по аттрибут=&#62;значение),
функция для отправки запроса (с поддержкой cookie, referer).

Для каких-то клиентов я делел всё на сокетах, кому-то нужна была поддержка https (а сокеты с поддержкой ssl встречаются реже, чем поддержка cURL). При этом код с cURL-ом ненамного отличался по размеру от кода для сокетов.

Потом я пришёл к тому, что лучше всё это объеденить в один класс. Так появился qrl. По умолчанию для http он использует сокеты, для https - cURL.

Позже я добавил метод для сабмита форм по её имени с подстановкой соотв. полей. Создал доп. класс для управлением ошибками (class qrl extends err_class {).

Подобные классы уже есть, напр. &lt;a target="_blank" href="http://sourceforge.net/projects/snoopy/" title="Snoopy - SourceForge.net" rel="nofollow"&gt;Snoopy&lt;/a&gt;, но я категорически не приемлю чужих разработок.

Далее я &lt;a target="_blank" href="http://mrkto.com/multi_threading_in_php/" title="multi_qrl" rel="nofollow"&gt;создал класс&lt;/a&gt; для многопоточной отправки запросов с помощью неблокирующих сокетов. Этот класс использует объекты класса qrl для каждого запроса. В PHP5 есть &lt;a target="_blank" href="http://sg2.php.net/manual/ru/function.curl-multi-exec.php" title="curl_multi_exec - PHP manual" rel="nofollow"&gt;curl_multi&lt;/a&gt;, но у него один недостаток - нельзя добавить новый поток пока не отработали все предыдущие.

В итоге получился очень удобный инструмент для работы с HTTP. По крайней мере для меня.</description>
		<content:encoded><![CDATA[<p>Сначала я оформлял всё как функции с передачей аргументов по ссылке.<br />
Была функция для парсинга и исправления url (как parse_url),<br />
функция парсинга html-тэгов (разбора по аттрибут=&gt;значение),<br />
функция для отправки запроса (с поддержкой cookie, referer).</p>
<p>Для каких-то клиентов я делел всё на сокетах, кому-то нужна была поддержка https (а сокеты с поддержкой ssl встречаются реже, чем поддержка cURL). При этом код с cURL-ом ненамного отличался по размеру от кода для сокетов.</p>
<p>Потом я пришёл к тому, что лучше всё это объеденить в один класс. Так появился qrl. По умолчанию для http он использует сокеты, для https - cURL.</p>
<p>Позже я добавил метод для сабмита форм по её имени с подстановкой соотв. полей. Создал доп. класс для управлением ошибками (class qrl extends err_class {).</p>
<p>Подобные классы уже есть, напр. <a target="_blank" href="http://sourceforge.net/projects/snoopy/" title="Snoopy - SourceForge.net" rel="nofollow">Snoopy</a>, но я категорически не приемлю чужих разработок.</p>
<p>Далее я <a target="_blank" href="http://mrkto.com/multi_threading_in_php/" title="multi_qrl" rel="nofollow">создал класс</a> для многопоточной отправки запросов с помощью неблокирующих сокетов. Этот класс использует объекты класса qrl для каждого запроса. В PHP5 есть <a target="_blank" href="http://sg2.php.net/manual/ru/function.curl-multi-exec.php" title="curl_multi_exec - PHP manual" rel="nofollow">curl_multi</a>, но у него один недостаток - нельзя добавить новый поток пока не отработали все предыдущие.</p>
<p>В итоге получился очень удобный инструмент для работы с HTTP. По крайней мере для меня.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: microsoft</title>
		<link>http://mrkto.com/qrl_class/#comment-26</link>
		<dc:creator>microsoft</dc:creator>
		<pubDate>Mon, 10 Sep 2007 14:42:11 +0000</pubDate>
		<guid isPermaLink="false">http://mrkto.com/qrl_class/#comment-26</guid>
		<description>это типа для тех, у кого CURL не работает ?</description>
		<content:encoded><![CDATA[<p>это типа для тех, у кого CURL не работает ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Seo Красавчег</title>
		<link>http://mrkto.com/qrl_class/#comment-21</link>
		<dc:creator>Seo Красавчег</dc:creator>
		<pubDate>Tue, 21 Aug 2007 13:32:12 +0000</pubDate>
		<guid isPermaLink="false">http://mrkto.com/qrl_class/#comment-21</guid>
		<description>Ну вроде все понятно</description>
		<content:encoded><![CDATA[<p>Ну вроде все понятно</p>
]]></content:encoded>
	</item>
</channel>
</rss>

