<?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>Maniac Programmer's Blog &#187; PHP</title>
	<atom:link href="http://2lx.ru/category/programming/php-programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://2lx.ru</link>
	<description>Блог помешанного программиста</description>
	<lastBuildDate>Wed, 08 Feb 2012 16:44:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>IP-логгер на PHP</title>
		<link>http://2lx.ru/2011/12/ip-logger-na-php/</link>
		<comments>http://2lx.ru/2011/12/ip-logger-na-php/#comments</comments>
		<pubDate>Sat, 10 Dec 2011 10:37:14 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=602</guid>
		<description><![CDATA[Самый простейший логгер посещений вашего сайта на PHP

&#60;?php
$logfile= &#039;/full_path_to/log.html&#039;;
$IP = $_SERVER[&#039;REMOTE_ADDR&#039;];
$logdetails= date(&#34;F j, Y, g:i a&#34;) . &#039;: &#039; . &#039;&#60;a href=http://dnsstuff.com/tools/city.ch?ip=&#039;.$_SERVER[&#039;REMOTE_ADDR&#039;].&#039;&#62;&#039;.$_SERVER[&#039;REMOTE_ADDR&#039;].&#039;&#60;/a&#62;&#039;;
$fp = fopen($logfile, &#34;a&#34;);
fwrite($fp, $logdetails);
fwrite($fp, &#34;&#60;br&#62;&#34;);
fclose($fp);
?&#62;

]]></description>
		<wfw:commentRss>http://2lx.ru/2011/12/ip-logger-na-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Генерация ЧПУ-ссылок</title>
		<link>http://2lx.ru/2011/09/generaciya-chpu-ssylok/</link>
		<comments>http://2lx.ru/2011/09/generaciya-chpu-ssylok/#comments</comments>
		<pubDate>Sun, 25 Sep 2011 05:23:19 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[ЧПУ]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=594</guid>
		<description><![CDATA[Небольшая функция, которая поможет Вам генерировать красивые ссылки для Вашего сайта

function make_seo_name($title) {
	return preg_replace(&#039;/[^a-z0-9йцукенгшщзхъфывапролджэячсмитьбюё_-]/i&#039;, &#039;&#039;, mb_convert_case(str_replace(&#039; &#039;, &#039;-&#039;, trim($title)), MB_CASE_LOWER, &#34;UTF-8&#34;));
}

Использовать так:
$title = &#34;Заголовок страницы&#34;
$url = &#34;http://site.ru/&#34; . make_seo_name($title);
]]></description>
		<wfw:commentRss>http://2lx.ru/2011/09/generaciya-chpu-ssylok/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Скрипт регистрации на сайте</title>
		<link>http://2lx.ru/2011/05/skript-registracii-na-sajte/</link>
		<comments>http://2lx.ru/2011/05/skript-registracii-na-sajte/#comments</comments>
		<pubDate>Tue, 10 May 2011 16:01:37 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=575</guid>
		<description><![CDATA[
&#60;?php
	if($_POST) {
		$password = $_POST[&#039;password&#039;];
		$confirm = $_POST[&#039;confirm&#039;];
		if($password != $confirm) { ?&#62;
&#60;span style=&#039;color:red&#039;&#62;Ошибка: Пароли не совпадают!&#60;/span&#62;
&#60;?php	} else {
			$dbhost = &#039;localhost&#039;;
			$dbuser = &#039;user&#039;;
			$dbpass = &#039;pass&#039;;
			$dbname = &#039;name&#039;;
			$conn = mysql_connect($dbhost,$dbuser,$dbpass)
				or die (&#039;Ошибка соединения с mysql&#039;);
			mysql_select_db($dbname);
			$query = sprintf(&#34;SELECT COUNT(id) FROM users WHERE UPPER(username) = UPPER(&#039;%s&#039;)&#34;,
				mysql_real_escape_string($_POST[&#039;username&#039;]));
			$result = mysql_query($query);
			list($count) = mysql_fetch_row($result);
			if($count &#62;= 1) { ?&#62;
&#60;span style=&#039;color:red&#039;&#62;Ошибка: Такой ...]]></description>
		<wfw:commentRss>http://2lx.ru/2011/05/skript-registracii-na-sajte/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Функция для защиты сайта от взлома</title>
		<link>http://2lx.ru/2011/04/funkciya-dlya-zashhity-sajta-ot-vzloma/</link>
		<comments>http://2lx.ru/2011/04/funkciya-dlya-zashhity-sajta-ot-vzloma/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 15:57:38 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=573</guid>
		<description><![CDATA[Универсальная функция для защиты сайта от XSS, SQL и JS-инъекций.
&#60;?php
/**
 * Cleaning Input Script
 * Copyright 2009 - www.pgmr.co.uk - contact@pgmr.co.uk
 */
function clean($str) {
	if(!get_magic_quotes_gpc()) {
 	$str = addslashes($str);
 }
	$str = strip_tags(htmlspecialchars($str));
	return $str;
}
?&#62;

Использовать так:
mysql_query(&#34;SELECT data from table WHERE property=&#039;&#34; . clean($_GET[&#039;property&#039;]) . &#34;&#039;&#34;);
]]></description>
		<wfw:commentRss>http://2lx.ru/2011/04/funkciya-dlya-zashhity-sajta-ot-vzloma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Бесконечное выполнение PHP-скрипта</title>
		<link>http://2lx.ru/2011/04/beskonechnoe-vypolnenie-php-skripta/</link>
		<comments>http://2lx.ru/2011/04/beskonechnoe-vypolnenie-php-skripta/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 15:52:55 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=571</guid>
		<description><![CDATA[
&#60;?php
ignore_user_abort(); // выполнять в фоновом режиме
set_time_limit(0); // снять ограничение времени выполнения
$interval=60*10;
do{
 echo &#34;hello, world!\n&#34;;
 sleep($interval);
}while(true);
?&#62;
PS: не работает в PHP Safe Mode.
]]></description>
		<wfw:commentRss>http://2lx.ru/2011/04/beskonechnoe-vypolnenie-php-skripta/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Вызов диалога &#171;Сохранить как&#187; в PHP</title>
		<link>http://2lx.ru/2011/04/vyzov-dialoga-soxranit-kak-v-php/</link>
		<comments>http://2lx.ru/2011/04/vyzov-dialoga-soxranit-kak-v-php/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 13:46:11 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=570</guid>
		<description><![CDATA[Очень часто бывает так, что сервер отображает передаваемый пользователю файл в виде текста в браузере вместо вызова диалога сохранения файла на диске. Это может быть как с двоичными данными (картинками, архивами), когда на экране отображаются какие-то закорючки, так и когда нужно сохранить пользователю какой-нибудь текстовый документ.
Скрипт ниже насильно вызывает диалог ...]]></description>
		<wfw:commentRss>http://2lx.ru/2011/04/vyzov-dialoga-soxranit-kak-v-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Подсчет количества пользователей онлайн</title>
		<link>http://2lx.ru/2011/03/podschet-kolichestva-polzovatelej-onlajn/</link>
		<comments>http://2lx.ru/2011/03/podschet-kolichestva-polzovatelej-onlajn/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 05:42:59 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=568</guid>
		<description><![CDATA[Функция для подсчета количества пользователей онлайн на Вашем сайте.

function howManyIps() {
	$filename = &#34;./howmanyip.log&#34;;
	$seconds = 300;
	$yourIP = &#34;&#34;;
	if (getenv(&#34;HTTP_CLIENT_IP&#34;)) $ip = getenv(&#34;HTTP_CLIENT_IP&#34;);
		else if(getenv(&#34;HTTP_X_FORWARDED_FOR&#34;)) $ip = getenv(&#34;HTTP_X_FORWARDED_FOR&#34;);
		else if(getenv(&#34;REMOTE_ADDR&#34;)) $ip = getenv(&#34;REMOTE_ADDR&#34;);
		else $ip = &#34;&#34;;

	if (file_exists($filename.&#34;.lock&#34;)) $readonly = true; else $readonly=false;

	$count = 0;
	// замыкаем лог-файл
	if (!$readonly) $fpLock = fopen($filename&#34;.lock&#34;, &#34;w&#34;);

	// читаем данные об ...]]></description>
		<wfw:commentRss>http://2lx.ru/2011/03/podschet-kolichestva-polzovatelej-onlajn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Получение расширенной информации о файлах в PHP</title>
		<link>http://2lx.ru/2010/11/poluchenie-rasshirennoj-informacii-o-fajlax-v-php/</link>
		<comments>http://2lx.ru/2010/11/poluchenie-rasshirennoj-informacii-o-fajlax-v-php/#comments</comments>
		<pubDate>Sat, 20 Nov 2010 17:06:57 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[файловая система]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=551</guid>
		<description><![CDATA[Помимо функций просмотра и получения информации о каталогах и файлах на Web-сервере и записи информации в них возможно осуществление ряда других операций. Сценарий, реализующий получение дополнительной информации о файлах, имеет вид:
&#60;html&#62;
&#60;head&#62;
 &#60;title&#62;Информация о файле&#60;/title&#62;
&#60;/head&#62;
&#60;body&#62;
&#60;?php
 $current_dir = &#039;/uploads/&#039;;
 $file = basename($file);//удаление информации о каталоге для большей безопасности

 echo &#039;&#60;h1&#62;Информация о файле: ...]]></description>
		<wfw:commentRss>http://2lx.ru/2010/11/poluchenie-rasshirennoj-informacii-o-fajlax-v-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Генератор RSS</title>
		<link>http://2lx.ru/2010/07/generator-rss/</link>
		<comments>http://2lx.ru/2010/07/generator-rss/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 14:08:18 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=533</guid>
		<description><![CDATA[RSS-ленты по сути представляют собой определенный набор XML-данных. Минимальный их набор:
&#60;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34; ?&#62;
 &#60;rss version=&#34;2.0&#34;&#62;
 &#60;channel&#62;
 &#60;title&#62;Название ленты&#60;/title&#62;
 &#60;link&#62;http://site.ru/rss_url&#60;/link&#62;
 &#60;item&#62;
 &#60;title&#62;Новость 1&#60;/title&#62;
 &#60;link&#62;http://site.ru/news/1&#60;/link&#62;
 &#60;description&#62;Описание новости&#60;/description&#62;
 &#60;pubDate&#62;01.01.2010&#60;/pubDate&#62;
 &#60;/item&#62;
 &#60;/channel&#62;
 &#60;/rss&#62;
 
В тегах title и link (строка 4 и 5) находится информация о Вашей RSS-ленте, а именно ее название и URL-адрес. ...]]></description>
		<wfw:commentRss>http://2lx.ru/2010/07/generator-rss/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP, Включены-ли куки?</title>
		<link>http://2lx.ru/2010/05/php-vklyucheny-li-kuki/</link>
		<comments>http://2lx.ru/2010/05/php-vklyucheny-li-kuki/#comments</comments>
		<pubDate>Sun, 30 May 2010 15:46:39 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[куки]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=521</guid>
		<description><![CDATA[Функция для проверки, включена-ли в браузере поддержка куков:
if(!$_GET[&#039;cookie&#039;]) {
 setcookie(&#34;test&#34;,&#34;1&#34;);
 header(&#34;Location: $PHP_SELF?cookie=1&#34;);
} else
 return $_COOKIE[&#039;test&#039;]);

]]></description>
		<wfw:commentRss>http://2lx.ru/2010/05/php-vklyucheny-li-kuki/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

