<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Блог Самборского Евгения &#187; Php</title>
	<atom:link href="http://www.samborsky.com/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.samborsky.com</link>
	<description></description>
	<lastBuildDate>Fri, 17 Jun 2011 18:22:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Интернет-магазин Technomagic.by</title>
		<link>http://www.samborsky.com/money/1647/</link>
		<comments>http://www.samborsky.com/money/1647/#comments</comments>
		<pubDate>Thu, 02 Dec 2010 03:34:00 +0000</pubDate>
		<dc:creator>Samborsky</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Деньги]]></category>
		<category><![CDATA[CodeIgniter]]></category>

		<guid isPermaLink="false">http://www.samborsky.com/?p=1647</guid>
		<description><![CDATA[Теперь у меня есть опыт разработки интернет-магазина с нуля! С марта по август 2010-го, на движке CodeIgniter для Алексея Морозова был выполнен шоп по продаже бытовой и цифровой техники &#8211; http://technomagic.by/. Работы было очень много (с нуля все-таки) но сделано, я думаю хорошо и удобно что для покупателей, что для редакторов шопа. При ежедневной упорной [...]]]></description>
			<content:encoded><![CDATA[<p>Теперь у меня есть опыт разработки интернет-магазина с нуля! С марта по август 2010-го, на движке CodeIgniter для <a href="http://designpix.ru/">Алексея Морозова</a> был выполнен шоп по продаже бытовой и цифровой техники &#8211; <a href="http://technomagic.by/">http://technomagic.by/</a>. Работы было очень много (с нуля все-таки) но сделано, я думаю хорошо и удобно что для покупателей, что для редакторов шопа.</p>
<p><img class="aligncenter size-full wp-image-1648" title="шоп" src="http://www.samborsky.com/wp-content/uploads/2010/12/Снимок-1.png" alt="" width="670" height="317" /></p>
<p>При ежедневной упорной работе все можно было разработать и отладить за месяц, но меня в то время очень отвлекала основная деятельность.<span id="more-1647"></span></p>
<p>Несколько скринов из админики: Каталог товаров. Представлен в виде дерева.</p>
<p><a href="http://www.samborsky.com/wp-content/uploads/2010/12/4.png"><img class="aligncenter size-medium wp-image-1655" title="4" src="http://www.samborsky.com/wp-content/uploads/2010/12/4-670x340.png" alt="" width="670" height="340" /></a></p>
<p>Редактирование товара: редактор характеристик</p>
<p><a href="http://www.samborsky.com/wp-content/uploads/2010/12/4.png"></a><a href="http://www.samborsky.com/wp-content/uploads/2010/12/7.png"><img class="aligncenter size-medium wp-image-1656" title="7" src="http://www.samborsky.com/wp-content/uploads/2010/12/7-670x286.png" alt="" width="670" height="286" /></a></p>
<p>Редактирование товара: основные параметры, загрузка фотографий.</p>
<p><a href="http://www.samborsky.com/wp-content/uploads/2010/12/5.png"><img class="aligncenter size-medium wp-image-1657" title="5" src="http://www.samborsky.com/wp-content/uploads/2010/12/5-670x282.png" alt="" width="670" height="282" /></a></p>
<p>Сравнение товаров</p>
<p><a href="http://www.samborsky.com/wp-content/uploads/2010/12/123.png"><img class="aligncenter size-medium wp-image-1659" title="123" src="http://www.samborsky.com/wp-content/uploads/2010/12/123-670x361.png" alt="" width="670" height="361" /></a></p>
<p>Оформление заказа:</p>
<p><a href="http://www.samborsky.com/wp-content/uploads/2010/12/321123.png"><img class="aligncenter size-medium wp-image-1660" title="321123" src="http://www.samborsky.com/wp-content/uploads/2010/12/321123-670x376.png" alt="" width="670" height="376" /></a></p>
<p>Магазин уже работает и продает.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.samborsky.com/money/1647/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Как получить кол-во FeedBurner подписчиков, зная домен</title>
		<link>http://www.samborsky.com/php/1088/</link>
		<comments>http://www.samborsky.com/php/1088/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 13:29:47 +0000</pubDate>
		<dc:creator>Samborsky</dc:creator>
				<category><![CDATA[Php]]></category>

		<guid isPermaLink="false">http://www.samborsky.com/?p=1088</guid>
		<description><![CDATA[Сегодня утром именно такой вопрос стоял. Полазил по API фидбернера, ничего не нашел подобного. Дело в том, что на сайте может быть вообще куча разных каналов, а мне нужно узнать количество подписчиков главной новостной ленты сайта, прожженой ч-з фидбернер. Полазил по рейтингам блогов &#8211; там вообще все тупо спрашивают у юзера адрес фида&#8230; лол&#8230; зачем [...]]]></description>
			<content:encoded><![CDATA[<p>Сегодня утром именно такой вопрос стоял. Полазил по API фидбернера, ничего не нашел подобного. Дело в том, что на сайте может быть вообще куча разных каналов, а мне нужно узнать количество подписчиков главной новостной ленты сайта, прожженой ч-з фидбернер.</p>
<p>Полазил по рейтингам блогов &#8211; там вообще все тупо спрашивают у юзера адрес фида&#8230; лол&#8230; зачем делать дополнительное действие, раз фид и так получить можно.</p>
<p>Остановился на таком алгоритме:</p>
<ol>
<li>Скачиваем страницу, например <em>http://www.samborsky.com</em></li>
<li>Ищем<em> link</em> теги, с атрибутом <em>application/rss+xml</em></li>
<li>Получаем полный адрес фида, например, если он указан локально /feed/</li>
<li>Заходим на полный адрес фида, получаем таким образом адрес редиректа &#8211; <em>http://feeds.feedburner.com/samborsky</em></li>
<li>Имея на руках полный адрес ленты в фидбернере &#8211; получить кол-во подписчиков &#8211; дело техники</li>
</ol>
<p>Привожу кусок класса, кто заметит ошибку, или знает, как сделать лучше пишите.</p>
<pre>function feedburner(){

	if( !$this-&gt;page_loaded ){
		$this-&gt;domain_source();
	}

	if( $this-&gt;page_loaded ){

		$feed = '';

		// Найдем RSS фид
		preg_match_all('/&lt;link(.+?)\s*\/?\s*&gt;/i',$this-&gt;source_code,$out,PREG_SET_ORDER);
		foreach( $out as $link ){

			$link = strtolower($link[1]);

			if( strpos($link,'application/rss+xml') ){

				// Если адрес взят в двойные кавычки
				if( preg_match('/href="(.+?)"/i',$link,$href) ){
					$feed = $href[1];
					break;
				}

				// Если адрес взят в одинарные кавычки
				if( preg_match("/href='(.+?)'/i",$link,$href) ){
					$feed = $href[1];
					break;
				}

				// Если адрес указан без кавычек
				if( preg_match("/href=\s*(.+)\s*/i",$link,$href) ){
					$feed = $href[1];
					break;
				}
			}
		}

		// Получаем полный адрес фида
		$url = parse_url($feed);
		if( empty($url['host']) ){
			$feed = 'http://' . $this-&gt;domain . $feed;
		}

		// Скачиваем фид, получаем реальный адрес
		if( $this-&gt;get($feed) ){

			// Получаем последний урл, на который редиректили
			$feed = $this-&gt;get_info(CURLINFO_EFFECTIVE_URL);

			if( !empty($feed) ){

				// Нужно получить название канала
				if( preg_match('/feedburner.com\/(.+?)$/i',$feed,$out) ){

					$feed = $out[1];

					// Делаем запрос на фидбернер
					if( $this-&gt;https_get('https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=' . $feed) ){

						echo $this-&gt;data;
						if( preg_match('/circulation="(\d+?)"/',$this-&gt;data,$match) ){

							return $match[1];
						}
					}
				}
			}
		}
	}

	return 'n/a';
}</pre>
<p>&#8212;&#8212;&#8212;<span id="more-1088"></span><br />
<a href="http://rastamogka.com.ua/">морские перевозки</a> в Одессе<br />
<a href="http://www.msk-beauty.ru/comments.html">салон красоты отзывы москва</a><br />
<a href="http://www.sosnoviy-bereg.com.ua/">поселок Золотые ключи Одесса</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.samborsky.com/php/1088/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>s_http: Получаем курсы валют с ЦБ России</title>
		<link>http://www.samborsky.com/php/1021/</link>
		<comments>http://www.samborsky.com/php/1021/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 12:00:07 +0000</pubDate>
		<dc:creator>Samborsky</dc:creator>
				<category><![CDATA[Php]]></category>

		<guid isPermaLink="false">http://www.samborsky.com/?p=1021</guid>
		<description><![CDATA[Нужно было с сайта центрального банка России парсить курсы валют. Задачу решил минут за 15-20, основное время ушло на формирование регулярки, которая тянет цифры. Всю работу c Curl делает за меня мой класс s_http. Исходник: $http = new s_http(); $http-&#62;init(); if( $http-&#62;get('http://cbr.ru') ){ $cources = array( 'now_usd' =&#62; 'не известен', 'tommorow_usd' =&#62; 'не известен', 'now_eur' [...]]]></description>
			<content:encoded><![CDATA[<p>Нужно было с сайта центрального банка России парсить курсы валют. Задачу решил минут за 15-20, основное время ушло на формирование регулярки, которая тянет цифры. Всю работу c Curl делает за меня мой класс <a href="http://www.samborsky.com/php/1010/">s_http</a>.</p>
<p><img class="aligncenter size-full wp-image-1022" src="http://www.samborsky.com/wp-content/uploads/2009/09/untitled.jpg" alt="" width="360" height="279" /></p>
<p>Исходник:<br />
<span id="more-1021"></span></p>
<pre>		$http = new s_http(); $http-&gt;init();
		if( $http-&gt;get('http://cbr.ru') ){

			$cources = array(
				'now_usd' 		=&gt; 'не известен',
				'tommorow_usd' 	=&gt; 'не известен',
				'now_eur' 		=&gt; 'не известен',
				'tommorow_eur'	=&gt; 'не известен'
			);

			if( preg_match_all('/&lt;td class="digit" align="right"&gt;(.+?)&amp;nbsp;&lt;\/td&gt;/i',$http-&gt;data,$out,PREG_PATTERN_ORDER) ){

				$cources['now_usd'] = $out[1][0];
				$cources['now_eur'] = $out[1][1];
			}

			if( preg_match_all('/&lt;td class="digit" align="right" nowrap&gt;(.+?)&amp;nbsp;/i',$http-&gt;data,$out,PREG_PATTERN_ORDER) ){

				$cources['tommorow_usd'] = $out[1][0];
				$cources['tommorow_eur'] = $out[1][1];
			}

		}</pre>
<p>Все. В массиве $cources цифры, которые можно встраивать в вашу страницу. Если будете юзать, не забывайте про кеш. Я скачиваю главную ЦБ раз в 6 часов, чаще не вижу смысла. Можно в принципе и на крон поставить.<br />
&#8212;&#8212;&#8212;-<br />
<a href="http://www.rusrek.com/en/newspaper/105/381657/">famous russian people</a><br />
Какая <a href="http://nsk-group.com/weather_odessa/">погода в одессе</a>? Узнай на сайте nsk-group.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.samborsky.com/php/1021/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Класс-обертка для curl — s_http</title>
		<link>http://www.samborsky.com/php/1010/</link>
		<comments>http://www.samborsky.com/php/1010/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 12:25:08 +0000</pubDate>
		<dc:creator>Samborsky</dc:creator>
				<category><![CDATA[Php]]></category>

		<guid isPermaLink="false">http://www.samborsky.com/?p=1010</guid>
		<description><![CDATA[Было время, когда я пытался написать серию статей о библиотеке curl: раз, два, три, но бросил эту затею, не потому, что статьи были бесполезные, и их никто не читал, а потому, что сам я уже не пользуюсь функциями curl в чистом виде. А писать статьи о том, чем сам не пользуешся &#8211; бред. Год назад [...]]]></description>
			<content:encoded><![CDATA[<p>Было время, когда я пытался написать серию статей о библиотеке curl: <a href="http://www.samborsky.com/php/566/">раз</a>, <a href="http://www.samborsky.com/php/569/">два</a>, <a href="http://www.samborsky.com/php/605/">три</a>, но бросил эту затею, не потому, что статьи были бесполезные, и их никто не читал, а потому, что сам я уже не пользуюсь функциями curl в чистом виде. А писать статьи о том, чем сам не пользуешся &#8211; бред.</p>
<p>Год назад я написал класс <strong>s_http</strong> (сокр. samborsky_http), который облегчил мою программистскую жизнь. Именно об этом классе я хотел бы поговорить. Создан он как раз на основе curl, а пользоваться им гораздо проще, чем работать с чистым curl api. Главное &#8211; для большинства задач он подходит.</p>
<p><span style="text-decoration: underline;">Особенности:</span></p>
<ul>
<li>Класс старается получить от сервера сжатые средствами gzip,deflate данные, если конечно сервер такое может. Нужно для экономии трафика.</li>
<li>Если класс в момент скачивания страницы получает 302 редирект, он переходит по нему.</li>
<li>По умолчанию User-Agent файрфоксовский, но вы можете сами его установить.</li>
<li>Все кукисы, полученные от вебсервера запоминаются. Очень удобно, если нужно парсить из-под логина.</li>
<li>Если пользователем изначально не задан Referer, то класс ставит в это поле предыдущую скачанную страницу, как это делают браузеры.</li>
</ul>
<p><strong>Подключение класса, инициализация.</strong></p>
<p>Для последующих примеров, я этот код не пишу. Но важно понимать, что он обязателен.</p>
<pre>		// Подключаем файл с классом
		include('s_http.php');

		// Создали класс
		$http = new s_http();

		// Инициализируем
		$http-&gt;init();</pre>
<p><strong>Пример I. Скачиваем главную страницу Яндекса.</strong></p>
<p>Самый распространенный код. Просто скачиваем страницу.</p>
<pre>		if( $http-&gt;get('http://www.yandex.ru/') ){

			// Все ок, выводим скачанную информацию
			echo $http-&gt;data();
		}
		else{

			// Покажем последнюю ошибку
			echo $http-&gt;error();
		}</pre>
<p><span id="more-1010"></span><strong>Пример II. Отправляем POST запрос.</strong></p>
<p>Отличный пример для сабмиттеров, или если вам нужно взять данные из-под логина (т.е. сначала войти в свой кабинет).</p>
<pre>		if( $http-&gt;post('http://mail.ru','login=lexus&amp;password=xxxxxx&amp;submit=Вход') ){

			// Все ок, выводим скачанную информацию
			echo $http-&gt;data();
		}
		else{

			// Покажем последнюю ошибку
			echo $http-&gt;error();
		}</pre>
<p><strong>Пример III. Скачиваем страницу по https.</strong></p>
<p>Если нужно скачать данные по https, то можно воспользоваться этим кодом. Правда, если вам нужно для авторизации отправлять свой сертификат, то код этот не годится, потому что внутри него отключается проверка сертификата. Но для большинства случаев  метод https_get вас устроит.</p>
<pre>		if( $http-&gt;https_get('https://light.webmoney.ru/login.aspx?l=ru') ){

			// Все ок, выводим скачанную информацию
			echo $http-&gt;data();
		}
		else{

			// Покажем последнюю ошибку
			echo $http-&gt;error();
		}</pre>
<p><strong>Пример IV. CodeIgniter</strong></p>
<p>Любителям фреймворка CodeIgniter тоже подойдет этот класс. Поместите его в папку /system/application/libraries/, а затем в коде, например в модели:</p>
<pre>		$this-&gt;load-&gt;library('s_http');
		$this-&gt;s_http-&gt;init();

		if( $this-&gt;s_http-&gt;get('http://www.samborsky.com/') ){
			echo $this-&gt;s_http-&gt;data();
		}
		else{
			echo $this-&gt;s_http-&gt;error();
		}</pre>
Note: There is a file embedded within this post, please visit this post to download the file.
<p>Класс на протяжении года развивался, потому если будут обновления, буду писать отдельные новости.</p>
<p>&#8212;&#8212;&#8211;<br />
Выгодные <a href="http://www.ipoteka.irr.ru/">ипотечные кредиты</a>. Налетай.<br />
Благоприятный <a href="http://almariss.ru/weather/">климат в болгарии</a> для Вас и Нас.<br />
Дешевые <a href="http://www.dinastya.ru/hair.php">стрижки спб</a> под ноль.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.samborsky.com/php/1010/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Уроки PHP: «CURL, базовые примеры I»</title>
		<link>http://www.samborsky.com/php/605/</link>
		<comments>http://www.samborsky.com/php/605/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 14:06:01 +0000</pubDate>
		<dc:creator>Samborsky</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[curl]]></category>

		<guid isPermaLink="false">http://www.samborsky.com/?p=605</guid>
		<description><![CDATA[Предыдущий мой урок был достаточно не прост, в связи с этим я решил показать как делать базовые вещи с помощью библиотеки curl. Комментировать буду каждую значимую строку, но если будут вопросы &#8211; пишите в комментариях. Как скачать страницу, зная ссылку? &#60;?php // Создаем подключение if( $curl = curl_init() ){ // Задаем ссылку curl_setopt($curl,CURLOPT_URL,'http://www.samborsky.com'); // Скачанные [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.samborsky.com/php/569/">Предыдущий</a> мой урок был достаточно не прост, в связи с этим я решил показать как делать базовые вещи с помощью библиотеки curl. Комментировать буду каждую значимую строку, но если будут вопросы &#8211; пишите в комментариях.</p>
<p><strong>Как скачать страницу, зная ссылку?</strong></p>
<pre>&lt;?php

	// Создаем подключение
	if( $curl = curl_init() ){

		// Задаем ссылку
		curl_setopt($curl,CURLOPT_URL,'http://www.samborsky.com');
		// Скачанные данные не выводить поток
		curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);

		// Скачиваем
		$out = curl_exec($curl);

		// Показываем скачанные данные
		echo $out;

		// Закрываем соединение
		curl_close($curl);
	}

?&gt;</pre>
<p><span id="more-605"></span><br />
<strong>Есть прокси, как скачать страницу по ссылке ч-з него?</strong> <span style="text-decoration: line-through;">спамерам на заметку</span></p>
<p>CURL умеет самостоятельно работать с http-прокси, socks (соксы) 4 и 5 версии. По умолчанию курл работает с http-проксями, но опцией CURLOPT_PROXYTYPE можно задать какой именно прокси будет использован (CURLPROXY_HTTP, CURLPROXY_SOCKS5, насчет константы CURLPROXY_SOCKS4 &#8211; не уверен, возможно в PHP ее отключили).</p>
<pre>&lt;?php

	// Создаем подключение
	if( $curl = curl_init() ){

		// Задаем ссылку
		curl_setopt($curl,CURLOPT_URL,'http://www.samborsky.com');
		// Скачанные данные не выводить поток
		curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);

		// Задаем тип проски - сокс5
		curl_setopt($curl,CURLOPT_PROXYTYPE,CURLPROXY_SOCKS5);

		// Указываем сам сокс
		curl_setopt($curl,CURLOPT_PROXY,'127.0.0.1:1080'); 

		// Скачиваем
		$out = curl_exec($curl);

		// Показываем скачанные данные
		echo $out;

		// Закрываем соединение
		curl_close($curl);
	}

?&gt;</pre>
<p><strong>Как посмотреть http-ответ сервера?</strong></p>
<p>Достаточно включить опцию CURLOPT_HEADER. После этого CURL добавляет заголовки в вывод.</p>
<pre>&lt;?php

	// Создаем подключение
	if( $curl = curl_init() ){

		// Задаем ссылку
		curl_setopt($curl,CURLOPT_URL,'http://www.samborsky.com');
		// Скачанные данные не выводить поток
		curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);

		// Нужно вывести http заголовки в массив
		curl_setopt($curl,CURLOPT_HEADER,true);

		// Скачиваем
		$out = curl_exec($curl);

		// Показываем скачанные данные
		echo $out;

		// Закрываем соединение
		curl_close($curl);
	}

?&gt;</pre>
<p>Пример рыботы:</p>
<blockquote><p>HTTP/1.1 200 OK<br />
Date: Fri, 17 Apr 2009 13:50:22 GMT<br />
Server: Apache/2.2.8 (Fedora)<br />
X-Powered-By: PHP/5.2.4<br />
X-Pingback: http://www.samborsky.com/xmlrpc.php<br />
Connection: close<br />
Transfer-Encoding: chunked<br />
Content-Type: text/html; charset=UTF-8</p>
<p>&lt;html&gt;&#8230; и прочий html код&#8230;</p></blockquote>
<hr />Недорогой <a href="http://rmhost.ru/">хостинг php</a>. Много тарифных планов.<br />
Единственный <a href="http://avto.od.ua/salons/faarmada/">автосалон армада одесса</a> с доступными ценами.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.samborsky.com/php/605/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Уроки по PHP: «CURL, делаем автоматический постер в BobrDobr.ru»</title>
		<link>http://www.samborsky.com/php/569/</link>
		<comments>http://www.samborsky.com/php/569/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 01:17:25 +0000</pubDate>
		<dc:creator>Samborsky</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[социальные закладки]]></category>

		<guid isPermaLink="false">http://www.samborsky.com/?p=569</guid>
		<description><![CDATA[Все знают, что социальные закладки превратились в линкопомойки, уже написано более десятка автоматических постеров, которые засирают базу соц. закладок ссылками на ГС и ГБ. Напишем и мы еще один Цель: Используя функции библиотеки CURL сделать искусственный HTTP POST запрос, авторизироваться, сохранить соц. закладку, и в целом показать как обычно делаются автоматические постеры. Да, у бобрдобра [...]]]></description>
			<content:encoded><![CDATA[<p>Все знают, что социальные закладки превратились в линкопомойки, уже написано более десятка автоматических постеров, которые засирают базу соц. закладок ссылками на ГС и ГБ. Напишем и мы еще один <img src='http://www.samborsky.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<blockquote><p><strong>Цель</strong>: Используя функции библиотеки CURL сделать искусственный HTTP POST запрос, авторизироваться, сохранить соц. закладку, и в целом показать как обычно делаются автоматические постеры.</p></blockquote>
<p><img class="alignleft size-full wp-image-571" style="margin: 8px;" title="bobr" src="http://www.samborsky.com/wp-content/uploads/2009/04/bobr.jpg" alt="bobr" width="114" height="90" />Да, у бобрдобра есть API для постинга закладок, но я усложню себе задачу, и с имитирую заход из браузера, введу программно логин и пароль, заполню поля для сохранения закладки.</p>
<p>Сперва нужно посмотреть, как соц. закладка добавляется вручную, и проследить за этим процессом Http сниффером (я использую плагин для FIrefox &#8211; HttpFox), а затем воспроизвести программно.</p>
<p><strong>1. Набираем в браузере адрес http://bobrdobr.ru/</strong></p>
<p><strong>2. Вводим логин и пароль, смотрим сниффер</strong>. Видим главное:</p>
<ol>
<li>Отправлять POST запрос нужно на адрес http://bobrdobr.ru/login/</li>
<li>POST данные выглядят следующим образом:<br />
<blockquote><p>username=%ЛОГИН%&amp;password=%ПАРОЛЬ%&amp;remember_user=on&amp;next=%2F</p></blockquote>
</li>
<li>При успешном входе сервис пересылает нас ч-з 302-редиррект на главную страницу.</li>
</ol>
<p><img class="aligncenter size-full wp-image-577" title="login" src="http://www.samborsky.com/wp-content/uploads/2009/04/login.jpg" alt="login" width="670" height="449" /><span id="more-569"></span><strong>3. Кликаем по ссылке &laquo;Добавить закладку&raquo;</strong>, получаем диалог, в котором вводим все данные и жмем &laquo;Сохранить&raquo;.</p>
<p><img class="aligncenter size-full wp-image-579" title="post" src="http://www.samborsky.com/wp-content/uploads/2009/04/post.jpg" alt="post" width="420" height="391" /></p>
<p>Аналогично как и во втором пункте я с помощью сниффера получаю следующую информацию:</p>
<ol>
<li>Отправка POST данных идет на ссылку: http://bobrdobr.ru/new_bookmark.html</li>
<li>Программисты ДоброгоБобра посчитали что смогут спастись от спамеров тем, что будут автоматически генерировать некий код&#8230; но не предусмотрели, что его можно выпарсить из html кода. Имеем ввиду вот эту строчку, ее нужно считать:<br />
<blockquote>
<pre id="line100">&lt;<span class="start-tag">input</span><span class="attribute-name"> type</span>=<span class="attribute-value">"hidden" </span><span class="attribute-name">name</span>=<span class="attribute-value">"killspammers" </span><span class="attribute-name">value</span>=<span class="attribute-value">"055C5507560701013A040C0557"</span><span class="error"><span class="attribute-name">/</span></span>&gt;</pre>
</blockquote>
</li>
<li>Ну и напоследок POST данные имеют следующий вид:<br />
<blockquote><p>killspammers=530154500556000F6F52550000&amp;url=%ССЫЛКА%&amp;name=%ЗАГОЛОВОК%&amp;tags=%ТЕГИ%&amp;description=%ОПИСАНИЕ%&amp;add_bookmark_submit=Сохранить</p></blockquote>
</li>
</ol>
<p>Теперь, когда механизм сохранения закладки для меня ясен, я начинаю программировать.<br />
Каждую строчку я прокомментировал, надеюсь понятно. Вбивайте свои логины и пароли на БобрДобр и пробуйте, все работает.</p>
<pre>&lt;?php

	// Ваши логин и пароль в бобрдобр
	$login = 'ваш логин';
	$pass = 'ваш пароль';

	// Данные для постинга
	$url = "http://www.google.com/";
	$name = "Это гугл, чтобы не забыть!";
	$tags = "Поисковая система, Супер-пупер";
	$content = "Это содержимое";

	// Создаем подключение
	if( $curl = curl_init() ){

		// Нужно загрузить главную страницу бобра
		curl_setopt($curl,CURLOPT_URL,'http://bobrdobr.ru/');

		// Нужно помнить кукисы!
		curl_setopt($curl, CURLOPT_COOKIESESSION, TRUE);
		curl_setopt($curl, CURLOPT_COOKIEFILE, "cookiefile");

		// Скачанный код возвращаем в переменную а не в поток
		curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);

		// "Следовать туда, куда зовут". Если сервис выдает 302 код, мы следуем по этой ссылке
		curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true);

		// Таймаут, если сервис не отвечает больше 30 секунд, выходим
		curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,30);

		// Активируем GZIP сжатие трафика
		curl_setopt($curl,CURLOPT_ENCODING,'gzip,deflate');

		// Соврем Бобру, напишем в юзер-агент неправду
		curl_setopt($curl,CURLOPT_USERAGENT,'Бобр - дурак');

		// Если все ок, в $html вернется html код главной страницы
		if( $html = curl_exec($curl) ){

			// Указываем куда отправлять запрос
			curl_setopt($curl,CURLOPT_URL,'http://bobrdobr.ru/login/');

			// Указываем подключению, что слать нужно не GET (по умолчанию), а POST запросы
			curl_setopt($curl,CURLOPT_POST,TRUE);

			// Указываем, что именно отправлять в POST данных, на этой стадии происходит ввод логина/пароля
			curl_setopt($curl,CURLOPT_POSTFIELDS,"username=$login&amp;password=$pass&amp;remember_user=on&amp;next=%2F");

			// Если все ок, в $html вернется html код главной страницы
			if( $html = curl_exec($curl) ){

				// Парсим этот сложнейший код, который защищает Доброго Бобра от спама!

				if( preg_match('/\&lt;input type=\"hidden\" name=\"killspammers\" value=\"(.+?)\"\/\&gt;/', $html, $out) ){

					// Отправляем СПАМ!

					// Указываем куда отправлять запрос
					curl_setopt($curl,CURLOPT_URL,'http://bobrdobr.ru/new_bookmark.html');

					// Указываем, что именно отправлять в POST данных, на этой стадии происходит ввод логина/пароля
					curl_setopt($curl,CURLOPT_POSTFIELDS,"killspammers=$out[1]&amp;url=$url&amp;name=$name&amp;tags=$tags&amp;description=$content&amp;add_bookmark_submit=%D0%A1%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D1%8C");

					if( $html = curl_exec($curl) ){

						echo 'Постинг выполнен!';
					}
				}
			}
		}									

		// Закрываем подключение, очищаем память
		curl_close($curl);
	}

?&gt;</pre>
<p>Вот и все. Надеюсь было интересно. Мне всегда хотелось создать свой постер в соц закладки, но подумав, я купил готовый &#8211; <a href="http://www.samborsky.com/r.php?u=d3d3LmJwb3N0ZXIubmV0Lz9hPTgyOTQ=">bposter</a>. Думаю у них аналогично постинг и реализован.</p>
<p>Думаю я вас убедил, что CURL &#8211; это сила.</p>
<hr />
<p>Я хоть лично и не пробовал, но реаламодатель говорит что <a href="http://hostlex.ru/">качественный хостинг</a> у компании hostlex. Ну что ж, поверим.</p>
<p>Строительная фирма <a href="http://teplover.com.ua/">тепловер</a> строит круглосуточно.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.samborsky.com/php/569/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
		<item>
		<title>Уроки по&#160;PHP: &#171;CURL, введение&#187;</title>
		<link>http://www.samborsky.com/php/566/</link>
		<comments>http://www.samborsky.com/php/566/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 23:18:49 +0000</pubDate>
		<dc:creator>Samborsky</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[curl]]></category>

		<guid isPermaLink="false">http://www.samborsky.com/?p=566</guid>
		<description><![CDATA[Этой статьей начинаю свою серию лекций по программированию на PHP. Меня не раз просили в комментариях написать с чего начать, и вот я наконец решился. Единственное: статьи мои будут рассчитаны не для начинающих программистов, а на тех кто уже знает основы PHP. Основы PHP мне не интересно рассказывать, хотя бы потому, что у PHP есть [...]]]></description>
			<content:encoded><![CDATA[<p>Этой статьей начинаю свою серию лекций по программированию на PHP. Меня не раз просили в комментариях написать с чего начать, и вот я наконец решился.</p>
<p>Единственное: статьи мои будут рассчитаны не для начинающих программистов, а на тех кто уже знает основы PHP. Основы PHP мне не интересно рассказывать, хотя бы потому, что у PHP есть онлайн справка, в том числе на русском, и она хорошо структурирована. В общем начав читать официальную справку, можно со временем освоить PHP на хорошем уровне. Лично я учился именно по этой справке, но когда я изучал PHP, описание функций было в основном на английском, так что сейчас гораздо проще изучить этот язык программирования.</p>
<p><img class="alignleft size-full wp-image-567" style="margin: 8px;" title="CURL" src="http://www.samborsky.com/wp-content/uploads/2009/04/ds-curlicon.png" alt="CURL" width="99" height="37" />С вступлением я почти закончил. Почему я начал именно с описания функций CURL ? Наверное потому, что это одна из моих любимых библиотек, ее я знаю отлично и писал десятки приложений, используя функции CURL различной сложности.</p>
<p>Т.к. статьи не для новичков, я пропускаю установку этого модуля к PHP (вы без труда найдете в инете, как установить ее на денвер) и перехожу к примерному списку лекций по этой библиотеке. Да, лекций по CURL будет несколько, в одну я явно не вложусь. К каждой будет прилагаться практический пример, актуальный для нашего времени.</p>
<p>К примеру как вам такие лекции:</p>
<ul>
<li>Работа с HTTPS. Для примера покажу как получить строку &laquo;Прибыль за сегодня&raquo; в Адсенсе</li>
<li>Автоматический постинг, я покажу как создать робота, который постит закладку скажем в Бобрдобр</li>
<li>Имитация браузера пользователя при парсинге гугла, к примеру я подделаю http заголовки так, что их будет тяжело  отличить от Firefox-овских</li>
</ul>
<p>Ну и еще чего нибудь придумаю по настроению, думаю будет интересно.</p>
<p><span id="more-566"></span></p>
<hr />Свадебный портал Екатеринбурга представляет вашему вниманию <a href="http://www.svadba66.ru/catalog/section36/">свадебные магазины</a> на любую толщину кошелька.</p>
<p>Одесская сео студия предлагает много услуг среди которых: <a href="http://inweb.od.ua/services/seo/">оптимизация сайтов</a>, создание интернет-магазинов, поднятие продаж путем наращивания поискового трафа.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.samborsky.com/php/566/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Скрипт для поиска &lt;noindex&gt; и списка ссылок</title>
		<link>http://www.samborsky.com/php/487/</link>
		<comments>http://www.samborsky.com/php/487/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 18:31:46 +0000</pubDate>
		<dc:creator>Samborsky</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[яндекс]]></category>

		<guid isPermaLink="false">http://www.samborsky.com/?p=487</guid>
		<description><![CDATA[В одном проекте, который мне поручили, нужно было проверять обратную ссылку и смотреть, чтобы ее не взяли в &#60;noindex&#62;-тег. Чтобы потестировать различные варианты и ситуации на разных сайтах, я создал скрипт с интерфейсом. Этот скрипт показал проблемы моей функции, которые я постепенно устранил. Поделюсь сперва своим алгоритмом, который проверяет находится ли ваша ссылка в теге [...]]]></description>
			<content:encoded><![CDATA[<p>В одном проекте, который мне поручили, нужно было проверять обратную ссылку и смотреть, чтобы ее не взяли в &lt;noindex&gt;-тег. Чтобы потестировать различные варианты и ситуации на разных сайтах, я создал скрипт с интерфейсом. Этот скрипт показал проблемы моей функции, которые я постепенно устранил.  Поделюсь сперва своим алгоритмом, который проверяет находится ли ваша ссылка в теге &lt;noindex&gt;, или она доступна к индексации яндексом.</p>
<ol>
<li>Скачиваю страницу, определяю тип кодировки, если отличная от UTF-8, конвертирую ее в эту кодировку.</li>
<li>С помощью жадного регулярного выражения /&lt;noindex&gt;(\s*.*?\s*)&lt;\/noindex&gt;/i я получаю все вхождения.</li>
<li>Каждое вхождение проверяю специальной функцией, в которой так же вызывается регулярное выражение, которое получает ссылку.</li>
</ol>
<p>Получился интересный скрипт, который может оказаться кому-либо полезным. Во первых он показывает содержимое тега &lt;noindex&gt;, красным отмечает, если ваш домен взят в этот тег. А во вторых он показывает список всех ссылок, которые нашел на странице.<span id="more-487"></span></p>
<p>Потестировать можно тут:</p>
<p><a href="http://www.samborsky.com/sources/noindex/ "> http://www.samborsky.com/sources/noindex/ </a></p>
<p><strong>Исходники</strong></p>
Note: There is a file embedded within this post, please visit this post to download the file.
<p>Постовой</p>
<p>Поиск работы, <a href="http://rabota.slando.kz/">трудоустройство</a> в Казахстане.</p>
<p>Модный <a href="http://alterego.od.ua/">дизайн интерьера дома</a>. Можно заказать мебель под любой вкус.</p>
<p>Нечем заняться? Тогда <a href="http://www.holdemworld.ru/">покер для начинающих</a> будет хорошим вариантом провести время.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.samborsky.com/php/487/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Скрипт проверки наличия сайтов в DMOZ каталоге</title>
		<link>http://www.samborsky.com/php/409/</link>
		<comments>http://www.samborsky.com/php/409/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 18:16:51 +0000</pubDate>
		<dc:creator>Samborsky</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[dmoz]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[скрипт dmoz]]></category>

		<guid isPermaLink="false">http://www.samborsky.com/?p=409</guid>
		<description><![CDATA[Написал этот скрипт уже давненько, но все никак не выложу. Точней я давно написал функцию проверки сайта в DMOZ каталоге, а обертку только сейчас сделал. Функция была частью проекта, который развалился так и не начавшись. Что за проект? Кому интересно расскажу: заказали мне полный аналог i.pr-cy.ru, т.е. той панельки, которая многим не дает покоя (стабильно [...]]]></description>
			<content:encoded><![CDATA[<p>Написал этот скрипт уже давненько, но все никак не выложу. Точней я давно написал функцию <strong>проверки сайта в DMOZ каталоге</strong>, а обертку только сейчас сделал. Функция была частью проекта, который развалился так и не начавшись.</p>
<p>Что за проект? Кому интересно расскажу: заказали мне полный аналог <a href="http://i.pr-cy.ru">i.pr-cy.ru</a>, т.е. той панельки, которая многим не дает покоя (стабильно мне предлагают ее написать, но больше 300$ никто не дает), мне этот проект вполне по зубам (даже лучше могу сделать), все функции в отдельности написаны, осталось только собрать все в одном проекте, сделать аккаунты пользователей, поставить лимиты на проверки и т.д. Но неожиданно заказчик решил отказаться от моих услуг. В общем хозяин-барин, жаль что предоплату не взял сразу. Кстати кому нужна такая панелька, радующая множество веб-мастеров, пишите, с удовольствием доделаю тот проект, который оцениваю в 300-500$ (в зависимости от подробностей).</p>
<p><strong>Как работает скрипт?</strong></p>
<p>Он берет домен, подставляет его в качестве параметра для поиска в DMOZ, к примеру:</p>
<blockquote><p>http://search.dmoz.org/cgi-bin/search?search=samborsky.com</p></blockquote>
<p>После чего парсит результаты поиска, и возвращает количество совпадений. Для моего блога результат 1, для yandex.ru &#8211; 53, для сайта не в dmoz.org &#8211; 0. По моему так повеселей, чем показывают все чекеры в той же сапе или в j2j (Да/Нет).</p>
<p><strong>Важное замечание</strong></p>
<p>Как всегда сайты с www. и без него &#8211; это разные вещи. Потому если вашего сайта нет в DMOZ, в то время, как вы уверены что он там есть &#8211; проверьте, правильно ли задали имя домена.<span id="more-409"></span></p>
<p><strong>Скриншот</strong></p>
<p><a href="http://www.samborsky.com/sources/dmoz_checker/"><img class="aligncenter size-full wp-image-413" title="скрипт проверки наличия в DMOZ" src="http://www.samborsky.com/wp-content/uploads/2009/02/untitled-22.jpg" alt="скрипт проверки наличия в DMOZ" width="642" height="637" /></a></p>
<p><strong>Демка</strong></p>
<p><a href="http://www.samborsky.com/sources/dmoz_checker/">Демка лежит тут</a>. Здесь стоит ограничение на проверку не более 6-ти доменов за один раз. Качайте себе полную версию и проверяйте сколько хотите.</p>
<p><strong>Скачать бесплатно полную версию</strong></p>
Note: There is a file embedded within this post, please visit this post to download the file.
<p>Ну и традиционно &#8211; кому чего доработать/переделать, пишите, сделаю за небольшое вознаграждение.</p>
<p><strong>Пост написан при поддержке спонсоров:</strong></p>
<p>По прогнозам специалистов <a href="http://www.systembars.ru">оконный пвх профиль</a>, будет совершенствоваться изо дня в день, что не скажется на его подорожании.</p>
<p>Самое <a href="http://www.treasuryislandcasino.com.ua/casino/">лучшее казино</a> Украины представлено теперь и в интернете. Делайте ставки, господа!</p>
<p>Продвижение и <a href="http://cooper-design.com.ua/odessa.html">разработка сайтов в одессе</a>. Лучшее соотношение цена/качество в регионе.</p>
<p style="text-align: center;"><strong>Стать спонсором нового поста очень просто, достаточно 5-ти баксов, пишите.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.samborsky.com/php/409/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Выполнен заказ от plasticfantastic.ru</title>
		<link>http://www.samborsky.com/php/200/</link>
		<comments>http://www.samborsky.com/php/200/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 09:20:37 +0000</pubDate>
		<dc:creator>Samborsky</dc:creator>
				<category><![CDATA[Php]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[блоги]]></category>

		<guid isPermaLink="false">http://www.samborsky.com/?p=200</guid>
		<description><![CDATA[Выполнил заказ сайта www.plasticfantastic.ru, который специализируется на пластической хирургии и косметологии, занимается освещением популярных пластических операций: груди, носа, лица. Их сайт работает на движке WordPress 2.3.2 Техническое задание было примерно следующим: Расширить функционал сайта на движке вордпресса: Ввести регистрацию новых пользователей. Систему личных блогов с возможностью добавления до и после операционных фотографий. предусмотреть сжатие размеров [...]]]></description>
			<content:encoded><![CDATA[<p>Выполнил заказ сайта <a href="http://www.plasticfantastic.ru/">www.plasticfantastic.ru</a>, который специализируется на  пластической хирургии и косметологии, занимается освещением популярных пластических операций: груди, носа, лица. Их сайт работает на движке <strong>WordPress 2.3.2</strong></p>
<p><img src="http://www.samborsky.com/wp-content/uploads/2008/11/logo.jpg" alt="" /></p>
<p><strong>Техническое задание было примерно следующим:</strong></p>
<blockquote><p><strong>Расширить функционал сайта на движке вордпресса</strong>:</p>
<ul>
<li>Ввести регистрацию новых пользователей.</li>
<li>Систему личных блогов с возможностью добавления до и после операционных фотографий.</li>
<li>предусмотреть сжатие размеров фотографий, в случае если наши клиенты загружают огромные фото прямо с камеры. Эта обработка должна происходить на сервере, а фото после обработки должно корректно вписываться в сайт.</li>
<li>На каждой фотографии нужно написать копирайты нашего сейта.</li>
<li>Предусмотреть возможность комментирования блогов.</li>
<li>У каждого блоггера должны быть своя админ-панель, в которой он сможет менять текст своих записей, добавлять/удалять фотографии и т.д.</li>
<li>Сделать возможность редактировать посты блоггеров, комментарии из админки вордпресса.</li>
</ul>
</blockquote>
<p>Взялся за проект с большим желанием, ведь по сути функционал, который им был нужен у меня был реализован на <a href="http://rybalka.tv/">сайте о рыбалке</a>. Там так же используется wordpress, но версии 2.6, потому копипаста кода не было, ведь многие современные функции вордпресса не доступны в версии 2.3.2, а предлагать клиентам обновится до последнего вордпресса не захотел из-за его прожорливости в плане ресурсов. Поэтому многое пришлось переписать.<span id="more-200"></span></p>
<p>Можно сказать что на разработку и тестирование у меня ушло полных четыре дня. Если вдаваться в технические тонкости, но отмечу, что мне пришлось править системный файл вордпресса <strong>template-loader.php</strong>, чтобы обеспечить работу ЧПУ ссылок для блогов и админки пользователя. Так же в проекте были задействованы во всей красе такие техники, о которых я писал в этом блоге, как: <a href="http://www.samborsky.com/wordpress/51/">отдельный шаблон для страниц</a>, <a href="http://www.samborsky.com/news/59/">создание миниатюр фотографий средствами php</a>, <a href="http://www.samborsky.com/php/68/">текст на картинке с контуром</a>, <a href="http://www.samborsky.com/wordpress/54/">персональные страницы пользователей в wordpress</a>.</p>
<p>Вот что у меня получилось в итоге:</p>
<div><a href="http://www.samborsky.com/wp-content/uploads/2008/11/5.jpg"><img class="alignleft size-medium wp-image-205" src="http://www.samborsky.com/wp-content/uploads/2008/11/5-300x240.jpg" alt="" width="300" height="240" /></a><a href="http://www.samborsky.com/wp-content/uploads/2008/11/6.jpg"><img class="alignleft size-medium wp-image-206" src="http://www.samborsky.com/wp-content/uploads/2008/11/6-300x240.jpg" alt="" width="300" height="240" /></a><a href="http://www.samborsky.com/wp-content/uploads/2008/11/7.jpg"><img class="alignleft size-medium wp-image-207" src="http://www.samborsky.com/wp-content/uploads/2008/11/7-300x240.jpg" alt="" width="300" height="240" /></a><a href="http://www.samborsky.com/wp-content/uploads/2008/11/4.jpg"><img class="alignleft size-medium wp-image-204" src="http://www.samborsky.com/wp-content/uploads/2008/11/4-300x240.jpg" alt="" width="300" height="240" /></a><a href="http://www.samborsky.com/wp-content/uploads/2008/11/3.jpg"><img class="alignleft size-medium wp-image-203" src="http://www.samborsky.com/wp-content/uploads/2008/11/3-300x240.jpg" alt="" width="300" height="240" /></a></p>
<p><a href="http://www.samborsky.com/wp-content/uploads/2008/11/1.jpg"><img class="alignleft alignnone size-medium wp-image-201" style="float: left;" src="http://www.samborsky.com/wp-content/uploads/2008/11/1-300x240.jpg" alt="" width="300" height="240" /></a><a href="http://www.samborsky.com/wp-content/uploads/2008/11/2.jpg"><img class="alignleft size-medium wp-image-202" src="http://www.samborsky.com/wp-content/uploads/2008/11/2-300x240.jpg" alt="" width="300" height="240" /></a></p>
</div>
<div style="clear: both;"></div>
<p>Для тех, кто хотел бы так же расширить функционал своего сайта/блога на движке wordpress, я хочу предложить <a href="http://www.samborsky.com/moi-uslugi/">свои услуги</a>. Рассматриваю все предложения с бюджетом от 300 USD и выше.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.samborsky.com/php/200/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
