<?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>TracKer&#039;s blog&#187; PHP</title>
	<atom:link href="http://tracker2k.kiev.ua/category/programming/php/feed" rel="self" type="application/rss+xml" />
	<link>http://tracker2k.kiev.ua</link>
	<description>in Development</description>
	<lastBuildDate>Tue, 13 Jul 2010 15:44:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>Облегчаем жизнь с помощью PHP.JS</title>
		<link>http://tracker2k.kiev.ua/oblegchaem-zhizn-s-pomoshhyu-php-to-javascript.html</link>
		<comments>http://tracker2k.kiev.ua/oblegchaem-zhizn-s-pomoshhyu-php-to-javascript.html#comments</comments>
		<pubDate>Thu, 15 Jan 2009 11:43:06 +0000</pubDate>
		<dc:creator>TracKer</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[PHP2JS]]></category>

		<guid isPermaLink="false">http://tracker2k.kiev.ua/?p=464</guid>
		<description><![CDATA[Часто работая над созданием различных интернет-проектов программист сталкивается с необходимостью написания какого-то кода на JavaScript. Однако при этом легко можно столкнуться с проблемой нехватки функций. Например мне недавно нужно было сгенерировать MD5 на стороне клиента, пришлось бы искать альтернативу, если бы я не знал о PHP.JS. Когда-то прочитав о нем, пользуюсь и по сей день. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://phpjs.org/"><img class="aligncenter" title="PHP.JS" src="http://phpjs.org/img/logosmall.jpg" alt="" width="120" height="54" /></a></p>
<p>Часто работая над созданием различных интернет-проектов программист сталкивается с необходимостью написания какого-то кода на JavaScript. Однако при этом легко можно столкнуться с проблемой нехватки функций. <img src='http://tracker2k.kiev.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Например мне недавно нужно было сгенерировать MD5 на стороне клиента, пришлось бы искать альтернативу, если бы я не знал о <a href="http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_md5/"><strong>PHP.JS</strong></a>. Когда-то <a href="http://www.jeka911.com/articles/webdev/javascript_php_functions/" target="_blank">прочитав</a> о нем, пользуюсь и по сей день. С тех пор количество функций увеличилось до <strong>263</strong> и продолжает увеличиваться. Еще один плюс, что не обязательно использовать файл который предоставляется в проекте целиком, необходимые функции можно вынести и тем самым облегчить работу Браузера клиента.</p>
<p>Сайт проекта: <a href="http://phpjs.org" target="_blank">http://phpjs.org</a></p>
<p>Список функций: <a href="http://phpjs.org/functions/index" target="_blank">http://phpjs.org/functions/index</a></p>
<p>Блог разработки: <a href="http://kevin.vanzonneveld.net/techblog/article/phpjs_licensing/" target="_blank">http://kevin.vanzonneveld.net/techblog/article/phpjs_licensing/</a></p>
<p>В ближайшее время на сайте проекта планируется добавить функцию компиляции необходимых функций в один файл, чтобы исключить ненужные.</p>
]]></content:encoded>
			<wfw:commentRss>http://tracker2k.kiev.ua/oblegchaem-zhizn-s-pomoshhyu-php-to-javascript.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>feof() не знает о конце файла</title>
		<link>http://tracker2k.kiev.ua/feof-ne-znaet-o-konce-fajla.html</link>
		<comments>http://tracker2k.kiev.ua/feof-ne-znaet-o-konce-fajla.html#comments</comments>
		<pubDate>Fri, 16 May 2008 18:40:09 +0000</pubDate>
		<dc:creator>TracKer</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[feof]]></category>

		<guid isPermaLink="false">http://tracker2k.kiev.ua/feof-ne-znaet-o-konce-fajla.html</guid>
		<description><![CDATA[Интересной и, кстати сказать, очень неожиданной новостью для меня стало то, что feof() на самом деле не знает о конце файла, прочитали ли мы последний символ/байт или все еще готовы читать дальше. Собственно поподробнее. Писал я маленький скрипт, ориентированный на использование бинарных файлов. В общем-то все было уже готово, однако в самый последний момент было [...]]]></description>
			<content:encoded><![CDATA[<p>Интересной и, кстати сказать, очень неожиданной новостью для меня стало то, что <a href="http://ua.php.net/manual/ru/function.feof.php" target="_blank">feof()</a> на самом деле не знает о конце файла, прочитали ли мы последний символ/байт или все еще готовы читать дальше.</p>
<p>Собственно поподробнее.</p>
<p>Писал я маленький скрипт, ориентированный на использование бинарных файлов. В общем-то все было уже готово, однако в самый последний момент было обнаружено, что по непонятной причине в буфере к прочитанным данным почему-то приплюсовывается дополнительно 10 байт данных (забитых нулями). Я не мог понять почему <strong>fread(</strong>) читает за пределами файла, а <strong>feof()</strong> не находит его конец, прочитывая последний байт. Провозился 4 часа, потом решил поискать&#8230; <a href="http://ua.php.net/manual/ru/function.feof.php#67261" target="_blank">И нашел</a>.</p>
<p>Принцип работы с функцией <strong>feof()</strong> следующий:  необходимо дочитать до конца файла, а потом прочитать еще один или более символов/байт за пределами файла, и только после этого <strong>feof()</strong> поймет что файл всетаки кончился.</p>
<p>Оказывается об этом люди знали еще в 2005 году, однако никакого намека в мануале PHP найти не удалось. Есть даже заявление на исправление ошибки в <a href="http://bugs.php.net/bug.php?id=35136" target="_blank">баг-трейсе</a>, однако по комментарию одного из разработчиков становится понятно, что это скорее фича языка, чем баг.</p>
<p>Особенно эта фича рулит при работе с бинарными файлами, где каждый байт на счету. <img src='http://tracker2k.kiev.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Будте внимательны, фичи на каждом шагу! <img src='http://tracker2k.kiev.ua/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://tracker2k.kiev.ua/feof-ne-znaet-o-konce-fajla.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Как избавиться от внешних ссылок в WordPress</title>
		<link>http://tracker2k.kiev.ua/kak-izbavitsya-ot-vneshnix-ssylok-v-wordpress.html</link>
		<comments>http://tracker2k.kiev.ua/kak-izbavitsya-ot-vneshnix-ssylok-v-wordpress.html#comments</comments>
		<pubDate>Sun, 20 Jan 2008 19:41:13 +0000</pubDate>
		<dc:creator>TracKer</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Программирование]]></category>
		<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[noindex]]></category>
		<category><![CDATA[redirect]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[внешние ссылки]]></category>
		<category><![CDATA[ссылки]]></category>

		<guid isPermaLink="false">http://tracker2k.kiev.ua/kak-izbavitsya-ot-vneshnix-ssylok-v-wordpress.html</guid>
		<description><![CDATA[Спросил меня недавно NOMAD &#8220;Как избавиться от ВС в комментариях&#8221;, решил поделиться опытом, как это сделать в WordPress. Первое что важно запомнить, это то что ссылки на комментаторов нельзя ни в коем случае удалять, это признак плохого тона автора блога. Удаляя ссылку вы разрушаете связь с комментатором. Вместо этого ссылку можно немного модифицировать, отправив ее, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tracker2k.kiev.ua/privodim-vneshnie-ssylki-v-chelovecheskij-vid.html#comments" target="_blank">Спросил</a> меня недавно NOMAD &#8220;Как избавиться от ВС в комментариях&#8221;, решил поделиться опытом, как это сделать в WordPress.</p>
<p>Первое что важно запомнить, это то что ссылки на комментаторов нельзя ни в коем случае удалять, это признак плохого тона автора блога. Удаляя ссылку вы разрушаете связь с комментатором. Вместо этого ссылку можно немного модифицировать, отправив ее, например, через скрипт переадресации. Таким образом Внешний Адрес будет находится как-бы в вашем домене, и как Внешняя Ссылка учитываться не будет.</p>
<p>О том как сделать скрипт переадресации я писал в этом посте: <a href="http://tracker2k.kiev.ua/ubiraem-vneshnie-ssylki.html" target="_blank">Убираем внешние ссылки</a>. Сделать нужно все что написано в посте, вплоть до запрета его индексации в <strong>robots.txt</strong>.</p>
<p>Как только скрипт готов идем в папку с темплейтом вашего блога, к примеру &#8220;<strong>/wp-content/themes/default/</strong>&#8221; находим файл &#8220;<strong>functions.php</strong>&#8221; и редактируем его.</p>
<p>Перед тем как перейти непосредственно к редактированию, разберем основные источники ВС в блоге на WordPress и методы борьбы с ними.</p>
<p>И так первый источник ВС это ссылки на автора темы. Обычно они расположен в футере (<strong>footer.php</strong>), но бывают и исключения, поэтому первым делом следует прошерстить темплейт на их наличие. Бороться с ними не сложно. Такие ссылки можно просто взять в &#8220;<strong>&lt;noindex&gt;</strong>&#8220;, примерно так:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;noindex&gt;Powered by &lt;a href=&quot;http://wordpress.org/&quot;&gt;WordPress&lt;/a&gt;&lt;/noindex&gt;</pre></div></div>

<p>Все что попадает в &#8220;<strong>&lt;noindex&gt;</strong>&#8221; не будет учитываться роботом Яндекса, поэтому с этим тегом нужно быть по осторожнее.</p>
<p>Со статическими ВС разобрались, теперь приступим к динамическим. Осталось несколько мест где могут появляться ВС, это: посты (содержание постов), комментарии и sidebar (их может быть несколько и называться они могут по разному, но это сути не меняет). Теперь перейдем непосредственно к редактированию &#8220;<strong>functions.php</strong>&#8221; о котором я писал выше.</p>
<p>Начнем с Постов. Чтобы избавиться от ВС в содержании поста необходимо поставить фильтр на &#8220;the_content&#8221;. Система фильтров в WordPress очень хорошо развита и позволяет фильтровать практически все что угодно. Итак ставим фильтр:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'the_content'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'removeLinks'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Вторым параметром к <strong>add_filter</strong> мы указываем функци, которая и будет фильтровать текст. Собственно код функции:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> preg_callback2<span style="color: #009900;">&#40;</span><span style="color: #000088;">$matches</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">':'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'http'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'https'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$need</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://tracker2k.kiev.ua&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$replace</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://tracker2k.kiev.ua/redirect.php?&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$need</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$need</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$replace</span><span style="color: #339933;">.</span><span style="color: #000088;">$matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #b1b100;">return</span> <span style="color: #000088;">$matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #000088;">$matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #000088;">$matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> removeLinks<span style="color: #009900;">&#40;</span><span style="color: #000088;">$content</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span> is_feed<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$content</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace_callback</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'@(]*href=&quot;)([^&gt;\&quot;]*)(&quot;[^&gt;]*&gt;)@i'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;preg_callback2&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$content</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$content</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace_callback</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'@(]*href=\')([^&gt;\&quot;]*)(\'[^&gt;]*&gt;)@i'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;preg_callback2&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$content</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #b1b100;">return</span> <span style="color: #000088;">$content</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Для замены ссылок я использовал регулярные выражения, поэтому добавилась еще одна функция обратного вызова. Чтобы адаптировать под себя вам следует заменить всего два параметра в функции <strong>preg_callback2</strong>, а именно <strong>$need</strong> и <strong>$replace</strong>. В $need следует указать полный адрес вашего сайта без слеша в конце, а в $replace путь в redirect.php со знаком вопроса (&#8220;<strong>?</strong>&#8220;) в конце. В принципе с постами мы закончили.</p>
<p>Теперь перейдем к комментариям. С ними, в принципе, дела обстоят точно также. Следует отфильтровать всего три &#8211; четыре параметра, с использованием описанной выше функции. Другими словами к написанному выше следует дописать:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'comment_text'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'removeLinks'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'get_comment_author_link'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'removeLinks'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'get_comment_author_url_link'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'removeLinks'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'comment_url'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'removeLinks'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Идем дальше. Следующим пунктом идет sidebar. С ним сложнее всего. С сайдбаре может быть множество виджетов генерируемых другими плагинами, которые в свою очередь генерируют ВС. Однако весь сайдбар ставить в &lt;noindex&gt; было бы ошибкой, так как можно лишится индексации многих страниц и разделов. Я расскажу о тех Виджетах с которыми работал.</p>
<p>Проше всего бороться с ВС у виджета <strong>Text</strong>, в нем у меня лежали каунтеры, кнопки и пр. Тут всеголишь следует добавить в начало и конец кода в Виджете &#8220;<strong>&lt;noindex&gt;</strong>&#8221; и &#8220;<strong>&lt;/noindex&gt;</strong>&#8221; соответственно. Далее виджет <strong>Links</strong>, он используется для генерации <strong>Blogroll</strong>. Тут необходимо установить еще один фильтр и написать еще одну функцию:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> removeLinks_Blogroll<span style="color: #009900;">&#40;</span><span style="color: #000088;">$p1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$p1</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$obj</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$obj</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">link_url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://tracker2k.kiev.ua/redirect.php?&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$obj</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">link_url</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #b1b100;">return</span> <span style="color: #000088;">$p1</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'get_bookmarks'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'removeLinks_Blogroll'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Подразумевается, что в <strong>Blogroll </strong>все ссылки Внешние, поэтому их проверка не производится. Чтобы адаптировать под себя, следует заменить &#8220;<strong>http://tracker2k.kiev.ua/redirect.php?</strong>&#8221; на то же значения что и <strong>$replace</strong> в <strong>preg_callback2</strong>. Также генерировать ВС может виджет <strong>Meta</strong>, вместо него я использую собственный, заменяющий его. Чтобы внести изменения в остальные виджеты генерирующие ВС необходимо править код WordPress, что весьма не хорошо. Некоторые виджеты, работающие на базе дополнительных плагинов дают возможность вставлять свои теги в свои начало и конец, например <strong>Flickr</strong>.<br />
Собственно все.</p>
<p>В итоге у вас должен получиться следующий код:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> preg_callback2<span style="color: #009900;">&#40;</span><span style="color: #000088;">$matches</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">':'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'http'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'https'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$need</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://tracker2k.kiev.ua&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$replace</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://tracker2k.kiev.ua/redirect.php?&quot;</span><span style="color: #339933;">;</span> 
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$need</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$need</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$replace</span><span style="color: #339933;">.</span><span style="color: #000088;">$matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #b1b100;">return</span> <span style="color: #000088;">$matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #000088;">$matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #000088;">$matches</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> removeLinks<span style="color: #009900;">&#40;</span><span style="color: #000088;">$content</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span> is_feed<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$content</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace_callback</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'@(]*href=&quot;)([^&gt;\&quot;]*)(&quot;[^&gt;]*&gt;)@i'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;preg_callback2&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$content</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$content</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace_callback</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'@(]*href=\')([^&gt;\&quot;]*)(\'[^&gt;]*&gt;)@i'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;preg_callback2&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$content</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #b1b100;">return</span> <span style="color: #000088;">$content</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'the_content'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'removeLinks'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'comment_text'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'removeLinks'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'get_comment_author_link'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'removeLinks'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'get_comment_author_url_link'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'removeLinks'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'comment_url'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'removeLinks'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> removeLinks_Blogroll<span style="color: #009900;">&#40;</span><span style="color: #000088;">$p1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$p1</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$obj</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$obj</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">link_url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://tracker2k.kiev.ua/redirect.php?&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$obj</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">link_url</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #b1b100;">return</span> <span style="color: #000088;">$p1</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span> 
&nbsp;
add_filter<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'get_bookmarks'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'removeLinks_Blogroll'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://tracker2k.kiev.ua/kak-izbavitsya-ot-vneshnix-ssylok-v-wordpress.html/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Определение браузера и ОС клиента</title>
		<link>http://tracker2k.kiev.ua/opredelenie-brauzera-i-os-klienta.html</link>
		<comments>http://tracker2k.kiev.ua/opredelenie-brauzera-i-os-klienta.html#comments</comments>
		<pubDate>Sun, 18 Nov 2007 15:51:34 +0000</pubDate>
		<dc:creator>TracKer</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Программирование]]></category>
		<category><![CDATA[browscap]]></category>
		<category><![CDATA[browser detection]]></category>
		<category><![CDATA[get_browser]]></category>
		<category><![CDATA[user agent]]></category>

		<guid isPermaLink="false">http://tracker2k.kiev.ua/blog/126-opredelenie-brauzera-i-os-klienta.html</guid>
		<description><![CDATA[В PHP есть встроенная функция get_browser(), которая позволяет определить каким browser&#8217;ом пользуется клиент. mixed get_browser &#40; &#91;string $user_agent &#91;, bool $return_array&#93;&#93; &#41; Все бы было хорошо, но данная функция привязана к INI файлу (browscap.ini), который не поставляется в стандартной сборке PHP, требует определенной настройки и периодического обновления INI файла, содержащего информация о браузерах. Все это [...]]]></description>
			<content:encoded><![CDATA[<p>В PHP есть встроенная функция <a TARGET="_blank" HREF="http://php.net/manual/en/function.get-browser.php">get_browser()</a>, которая позволяет определить каким browser&#8217;ом пользуется клиент.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">mixed <span style="color: #990000;">get_browser</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#91;</span>string <span style="color: #000088;">$user_agent</span> <span style="color: #009900;">&#91;</span><span style="color: #339933;">,</span> bool <span style="color: #000088;">$return_array</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span></pre></div></div>

<p>Все бы было хорошо, но данная функция привязана к INI файлу (<a TARGET="_blank" HREF="http://browsers.garykeith.com/downloads.asp">browscap.ini</a>), который не поставляется в стандартной сборке PHP, требует определенной настройки и периодического обновления INI файла, содержащего информация о браузерах. Все это обычно не работает на хостингах, а если и работает, то <strong>browscap.ini</strong>, скорее всего, очень древний и толку от него мало.</p>
<p>В поисках решения я обнаружил интересный проект Джонатана Стоппани &#8220;<a TARGET="_blank" HREF="http://garetjax.info/projects/browscap/">Browser Capabilities PHP Project</a>&#8220;. Автор проекта написал класс который служит заменой функции <strong>get_browser()</strong>. Класс называется <strong>Browscap</strong> и позволяет подключить browscap.ini <strong>динамически</strong>, он преобразует browscap.ini в понятный для PHP массив и далее работает с уже ним, но коме этого он умеет автоматически производить обновление библиотеки browscap.ini через определенный промежуток времени.</p>
<p>Кроме всего выше перечисленного класс позволяет определить такие данные о браузере клиента как Платформу (ОС), Поддержку Java и JavaScript, Робот ли клиент (Google, Yandex) и много другого.</p>
<p>Пример:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Loads the class </span>
<span style="color: #b1b100;">require</span> <span style="color: #0000ff;">'Browscap/Browscap.php'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Creates a new Browscap object (loads or creates the cache) </span>
<span style="color: #000088;">$bc</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Browscap<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Browscap/cache'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
<span style="color: #666666; font-style: italic;">// Gets information about the current browser's user agent </span>
<span style="color: #000088;">$current_browser</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$bc</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getBrowser</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
&nbsp;
<span style="color: #666666; font-style: italic;">// Output the result </span>
<span style="color: #990000;">print_r</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$current_browser</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Результат выполнения:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">Array</span>
<span style="color: #009900;">&#40;</span>
    <span style="color: #009900;">&#91;</span>browser_name<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Opera<span style="color: #339933;">/</span><span style="color:#800080;">9.23</span> <span style="color: #009900;">&#40;</span>Windows NT <span style="color:#800080;">5.1</span><span style="color: #339933;">;</span> U<span style="color: #339933;">;</span> ru<span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#91;</span>browser_name_regex<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> ^opera<span style="color: #339933;">/</span><span style="color: #cc66cc;">9</span>\<span style="color: #339933;">.</span>2<span style="color: #339933;">.*</span> \<span style="color: #009900;">&#40;</span>windows nt <span style="color: #cc66cc;">5</span>\<span style="color: #339933;">.</span>1<span style="color: #339933;">.*</span>\<span style="color: #009900;">&#41;</span><span style="color: #339933;">.*</span>$
    <span style="color: #009900;">&#91;</span>browser_name_pattern<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Opera<span style="color: #339933;">/</span><span style="color:#800080;">9.2</span><span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span>Windows NT <span style="color:#800080;">5.1</span><span style="color: #339933;">*</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span>
    <span style="color: #009900;">&#91;</span>Parent<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Opera <span style="color:#800080;">9.2</span>
    <span style="color: #009900;">&#91;</span>Platform<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> WinXP
    <span style="color: #009900;">&#91;</span>Win32<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span>
    <span style="color: #009900;">&#91;</span>Browser<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Opera
    <span style="color: #009900;">&#91;</span>Version<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color:#800080;">9.2</span>
    <span style="color: #009900;">&#91;</span>MajorVer<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">9</span>
    <span style="color: #009900;">&#91;</span>MinorVer<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">2</span>
    <span style="color: #009900;">&#91;</span>Frames<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span>
    <span style="color: #009900;">&#91;</span>IFrames<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span>
    <span style="color: #009900;">&#91;</span>Tables<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span>
    <span style="color: #009900;">&#91;</span>Cookies<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span>
    <span style="color: #009900;">&#91;</span>BackgroundSounds<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span>
    <span style="color: #009900;">&#91;</span>JavaApplets<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span>
    <span style="color: #009900;">&#91;</span>JavaScript<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span>
    <span style="color: #009900;">&#91;</span>CSS<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">2</span>
    <span style="color: #009900;">&#91;</span>CssVersion<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">2</span>
    <span style="color: #009900;">&#91;</span>supportsCSS<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">1</span>
    <span style="color: #009900;">&#91;</span>Alpha<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> 
    <span style="color: #009900;">&#91;</span>Beta<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> 
    <span style="color: #009900;">&#91;</span>Win16<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> 
    <span style="color: #009900;">&#91;</span>Win64<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> 
    <span style="color: #009900;">&#91;</span>AuthenticodeUpdate<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> 
    <span style="color: #009900;">&#91;</span>CDF<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> 
    <span style="color: #009900;">&#91;</span>VBScript<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> 
    <span style="color: #009900;">&#91;</span>ActiveXControls<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> 
    <span style="color: #009900;">&#91;</span>Stripper<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> 
    <span style="color: #009900;">&#91;</span>isBanned<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> 
    <span style="color: #009900;">&#91;</span>WAP<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> 
    <span style="color: #009900;">&#91;</span>isMobileDevice<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> 
    <span style="color: #009900;">&#91;</span>isSyndicationReader<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> 
    <span style="color: #009900;">&#91;</span>Crawler<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> 
    <span style="color: #009900;">&#91;</span>AOL<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> 
    <span style="color: #009900;">&#91;</span>aolVersion<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">0</span>
    <span style="color: #009900;">&#91;</span>netCLR<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> 
    <span style="color: #009900;">&#91;</span>ClrVersion<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">0</span>
<span style="color: #009900;">&#41;</span></pre></div></div>

<p>Browscap качаем тут: <a TARGET="_blank" HREF="http://garetjax.info/projects/browscap/#download">http://garetjax.info/projects/browscap/#download</a><br />
Сам browscap.ini можно взять тут: <a TARGET="_blank" HREF="http://browsers.garykeith.com/downloads.asp">http://browsers.garykeith.com/downloads.asp</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tracker2k.kiev.ua/opredelenie-brauzera-i-os-klienta.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Убираем внешние ссылки</title>
		<link>http://tracker2k.kiev.ua/ubiraem-vneshnie-ssylki.html</link>
		<comments>http://tracker2k.kiev.ua/ubiraem-vneshnie-ssylki.html#comments</comments>
		<pubDate>Sat, 17 Nov 2007 12:25:44 +0000</pubDate>
		<dc:creator>TracKer</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Программирование]]></category>
		<category><![CDATA[sape.ru]]></category>
		<category><![CDATA[внешние ссылки]]></category>

		<guid isPermaLink="false">http://tracker2k.kiev.ua/blog/125-ubiraem-vneshnie-ssylki.html</guid>
		<description><![CDATA[Недавно писал про искоренение &#8220;ссылок через скрипт-редирект&#8221; непосредственно в браузере конечного пользователя. Теперь же хочу написать про совсем маленький скрипт который осуществляет этот редирект и помогает избавиться от внешних ссылок. Применяют такой скрипт в определенных случаях, например: при искоренение внешних ссылок в случае их продажи, например в sape.ru, при подсчет кликов по ссылкам (при клике [...]]]></description>
			<content:encoded><![CDATA[<p>Недавно <a HREF="http://tracker2k.kiev.ua/privodim-vneshnie-ssylki-v-chelovecheskij-vid.html" TARGET="_blank">писал</a> про искоренение &#8220;ссылок через скрипт-редирект&#8221; непосредственно в браузере конечного пользователя. Теперь же хочу написать про совсем маленький скрипт который осуществляет этот редирект и помогает избавиться от внешних ссылок.</p>
<p>Применяют такой скрипт в определенных случаях, например: при искоренение внешних ссылок в случае их продажи, например в <a HREF="http://www.sape.ru/r.f9a51c268c.php" TARGET="_blank">sape.ru</a>, при подсчет кликов по ссылкам (при клике сначала статистические данные заносятся в БД, после чего осуществляется переадресация на нужный ресурс).</p>
<p>А сам скрипт совсем маленький, фактически вот он:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?</span>
<span style="color: #000088;">$uri</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">array_key_exists</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;QUERY_STRING&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$uri</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;QUERY_STRING&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Location: &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$uri</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>И все <img src='http://tracker2k.kiev.ua/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Файл называется <strong>redirect.php</strong> и  находится в корне вашего сайта (чтобы к нему было легче обращаться).</p>
<p>Обращаться же к нему необходимо следующим образом: если нужно сделать переадресацию на <strong>http://google.com</strong>, то необходимо указать следующий адрес в ссылке:</p>
<p><strong>http://yoursite.com/redirect.php?http://www.google.com</strong>.</p>
<p>Если вы используете <a TARGET="_blank" HREF="http://www.sape.ru/r.f9a51c268c.php">sape.ru</a>, то это не запрещено их правилами и хорошо действует для избавления от внешних ссылок, но стоит также помнить, что такие ссылки очень плохо индексируются роботами (Google, Yandex), поэтому к ним лучше запретить доступ роботов через файл <strong>robots.txt</strong> со следующим содержанием:</p>
<pre>
User-Agent: *
Disallow: /redirect.php</pre>
<p>Это значит что все ссылки которые начинаются с &#8220;<strong>/redirect.php</strong>&#8221; роботом обрабатываться не будут.</p>
]]></content:encoded>
			<wfw:commentRss>http://tracker2k.kiev.ua/ubiraem-vneshnie-ssylki.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
