<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="https://php.fanbb.ru/export.php?type=rss" rel="self" type="application/rss+xml" />
		<title>Форум ImperialMu Season 4 Full!</title>
		<link>http://php.fanbb.ru/</link>
		<description>Форум ImperialMu Season 4 Full!</description>
		<language>ru-ru</language>
		<lastBuildDate>Wed, 15 Dec 2010 18:33:14 +0300</lastBuildDate>
		<generator>MyBB/mybb.ru</generator>
		<item>
			<title>Набор Модераторов!</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=37#p37</link>
			<description>&lt;p&gt;Требуется Модератор в Раздел MuOnline&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 18:33:14 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=37#p37</guid>
		</item>
		<item>
			<title>Модераторы</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=36#p36</link>
			<description>&lt;p&gt;Н/A&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 18:11:08 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=36#p36</guid>
		</item>
		<item>
			<title>Администраторы!</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=35#p35</link>
			<description>&lt;p&gt;Главный Администратор и Создатель Проекта!&lt;br /&gt;**********************&lt;br /&gt;&lt;span style=&quot;color: red&quot;&gt;BOPOH&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;**********************&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&lt;span style=&quot;color: red&quot;&gt; Контакты&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: red&quot;&gt;ICQ 627-137-219&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: red&quot;&gt;Skype: php.programist&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;******************************************************&lt;br /&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: red&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; Внимание !!!!&lt;br /&gt;При Обращении к Администрации или Специалистам&lt;br /&gt;Скоректируйте свой вапрос!&lt;br /&gt;Не Пишите Фразы как Привет,как дела,ты тут,&lt;br /&gt;что молчиш!&lt;/p&gt;
						&lt;p&gt;Ети Сообщения Будут Игнорироватся!!!&lt;/span&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 18:08:05 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=35#p35</guid>
		</item>
		<item>
			<title>http://www.vanta.ru/ Наши Скрипты Тут!</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=34#p34</link>
			<description>&lt;p&gt;&lt;a href=&quot;http://www.vanta.ru/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://www.vanta.ru/&lt;/a&gt; Наши Скрипты Тут!&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 17:57:14 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=34#p34</guid>
		</item>
		<item>
			<title>Правила Форума</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=33#p33</link>
			<description>&lt;p&gt;Правила форума&lt;/p&gt;
						&lt;p&gt;Общие положения.&lt;br /&gt;1.Незнание правил не освобождает от необходимости их выполнения.&lt;br /&gt;2.Отправка любого сообщения в конференцию автоматически означает Ваше согласие с настоящими правилами и с необходимостью их выполнения.&lt;br /&gt;3.Все имеющиеся на сервере сведения имеют исключительно информационное назначение. Все сообщения отражают мнения их авторов, и администрация не несет за них никакой ответственности&lt;br /&gt;4. Язык общения на Конференции - русский. Исключения составляют названия торговых марок, моделей устройств, программных продуктов и аббревиатура устройств. Они должны воспроизводиться только латинскими буквами.&lt;br /&gt;5.Не обращайте внимания на хулиганов. Не отвечайте им, даже если Вы считаете, что Вас оскорбили, просто сообщите администратору. Остальное — забота администрации конференции.&lt;/p&gt;
						&lt;p&gt;Условия создания новых тем и ответов на существующие темы&lt;br /&gt;1. Любой посетитель конференции имеет право создать тему, которая соответствует профилю форума и не является повторной по данному вопросу.&lt;br /&gt;2. В заголовке обязательно указывайте название предмета, которого касается вопрос. Более подробно о правилах создания тем прочитайте в Правилах форумов.&lt;br /&gt;3. Если вопрос касается тем нескольких форумов, достаточно задать свой вопрос только в одном из них.&lt;br /&gt;4. Если вы задаете вопрос о мамботе/модуле/компоненте не входящем в дистрибутив Joomla! добавляйте ссылку на страницу расширения.&lt;br /&gt;5. При создании новой темы руководствуйтесь правилом: один вопрос - одна тема. Если есть несколько вопросов&amp;#160; - создайте соответствующее количество тем.&lt;br /&gt;6. Прежде, чем создать тему с вопросом, попытайтесь правильно сформулировать для себя свой вопрос.&lt;br /&gt;Пользуйтесь поиском и фильтром в форумах для нахождения ответов на вопросы. Если такая тема создана уже кем-то другим, задайте вопрос в ней.&lt;br /&gt;7. Для выделения или постановки ударения на слово или фразу, используйте жирный шрифт или выделение цветом (кроме красного). Не используйте ЗАГЛАВНЫЕ буквы.&lt;/p&gt;
						&lt;p&gt;Условия удаления своих тем&lt;br /&gt;1. Если вы хотите удалить свою тему обращайтесь к администрации форума путем личных сообщений или по ссылке сообщить модератору с указанием причины удаления темы.&lt;/p&gt;
						&lt;p&gt;Запрещается&lt;br /&gt;1. Грубые, нецензурные выражения и оскорбления в любой форме - сообщения, грубые по тону и содержанию.&lt;br /&gt;2. Призывы к нарушению действующего законодательства, высказывания расистского характера, разжигание межнациональной и религиозной розни и всего прочего, что попадает под действие УК РФ.&lt;br /&gt;Размещать заведомо ложную информацию, клевету, а также использовать нечестные приемы ведения дискуссий.&lt;br /&gt;3. Создавать темы, содержащие любую рекламную, антирекламную или коммерческую информацию, а также ссылки на сайты с целью повышения их посещаемости (За исключением специально отведенных тем)&lt;br /&gt;4. Каким-либо образом склонять или сленговать названия брендов, моделей, устройств. Использовать сленг, который может быть непонятен другим собеседникам.&lt;br /&gt;5. Размещать информацию эротического и порнографического содержания, ссылки и пароли к сайтам вышеуказанной тематики.&lt;br /&gt;6. Писать бессмысленнyю или малосодеpжательнyю инфоpмацию, не несущую смысловой нагрузки; Флеймить в тематических разделах; Использовать конференцию в качестве чата.&lt;br /&gt;7. Цитировать сообщения предыдущего посетителя целиком. Цитируя, апеллируйте к конкретной фразе.&lt;br /&gt;8. Вставлять в сообщение рисунок разрешением более 640x480 или размером более 40Кб. Такие рисунки разрешено указывать только в виде ссылки.&lt;br /&gt;9. Создавать темы, имеющие в названии или содержании непрерывный текст, состоящий из ЗАГЛАВНЫХ букв. Уважайте своих собеседников, у них может сложиться мнение, что Вы на них кричите.&lt;br /&gt;10. Создавать темы, имеющие не содержательные названия, бессмысленные наборы букв, символьные украшения.&lt;br /&gt;11. Задавать свой вопрос в открытой теме, если только он не связан с обсуждаемым в этой теме вопросом.&lt;br /&gt;12. Безосновательные и не аргументированные утверждения, не подтвержденные фактами. Упомяните, чей это опыт или мнение.&lt;br /&gt;13. Поднимать свою тему добавлением сообщений или создавать новые темы с таким же содержанием, если с момента создания темы прошло менее 3-х дней&lt;br /&gt;14. Продолжение обсуждений вопросов из тем, закрытых/удаленных администрацией.&lt;br /&gt;15. Указывать в своем вопросе e-mail (icq), с просьбой ответить по нему на вопрос. Используйте возможность подписаться на интересующую Вас тему.&lt;br /&gt;16. Обсуждение действий Администрации. Если Вы хотите что-то сказать, делайте это лично, через письма.&lt;br /&gt;17. Создавать сообщения в темах с содержанием подобным &amp;quot;чтобы не создавать новую тему спрошу здесь&amp;quot;. Создавайте темы со своими вопросам, не засоряйте форум не информативным содержимым.&lt;br /&gt;18. Любым образом распространять warez (варез), т.е. нелицензионное программное обеспечение (прямые ссылки на скачивание вареза; ссылки на сайты, содержащие, в свою очередь, ссылки на ресурсы, распространяющие нелицензионные продукты).&lt;br /&gt;19. Использовать подпись к аватару в рекламных целях (в том числе, и для размещения адреса сайта).&lt;br /&gt;20. Многократная регистрация одного пользователя под разными никнеймами (именами пользователя).&lt;br /&gt;21. Использование красного цвета в Ваших сообщениях или подписях. Красный цвет- разрешён только администрации форума.&lt;/p&gt;
						&lt;p&gt;Меры по наведению порядка&lt;br /&gt;За порядком следит Администрация Конференции: модераторы и администраторы.&lt;br /&gt;Администрация оставляет за собой право переносить темы и отдельные посты, не соответствующие тематике форума, в подходящий форум; закрывать или удалять темы, нарушающие установленный порядок и противоречащие правилам конференции; блокировать доступ нарушителей к конференции.&lt;br /&gt;Модераторы не являются штатным ответчиками на любые вопросы, поэтому просьба уважать их труд и соблюдать требования.&lt;br /&gt;МОДЕРАТОРИЙ:&lt;br /&gt;Сообщения, опубликованные вопреки указанным выше предупреждениям, будут модерироваться, а при невозможности этой операции удаляться целиком.&lt;br /&gt;Помните, что терпение модератора не вечное, — к посетителям регулярно и/или преднамеренно путающим, что принято, а что не принято, будут применяться следующие меры на усмотрение модератора:&lt;br /&gt;— удаление сообщений; (Внимание! Удаляемые сообщения не сохраняются и не подлежат восстановлению!)&lt;br /&gt;— предупреждение в привате;&lt;br /&gt;— публичное предупреждение;&lt;br /&gt;— временный перевод в режим предмодерации;&lt;br /&gt;— перевод в режим &amp;quot;только чтение&amp;quot; (бан);&lt;br /&gt;— удаление с форума (полный бан);&lt;br /&gt;— блокировка сети провайдера;&lt;/p&gt;
						&lt;p&gt;Помните, что при блокировке сети Вашего провайдера, Вы лишите возможности оставлять отзывы на материалы не только себя, но и других потенциальных посетителей нашего сайта, работающих из сети Вашего провайдера.&lt;br /&gt;Уровень ограничения или тип предупреждения выбирается модератором в зависимости от нарушенного пункта правил и наличия ранее вынесенных замечаний.&lt;br /&gt;Все замечания или наказания заносятся в &amp;quot;рейтинг участника&amp;quot;.&lt;/p&gt;
						&lt;p&gt;ОСОБЫЕ УСЛОВИЯ:&lt;br /&gt;1. С форума удаляются:&lt;br /&gt;— пользователи, зарегистрировавшиеся два или более раз единовременно без согласия на то модератора;&lt;br /&gt;— пользователи с никами, содержащими оскорбления (типа &amp;quot;все козлы&amp;quot;);&lt;br /&gt;— пользователи с никами, без смысловой нагрузки (типа &amp;quot;65r7tgu6547&amp;quot;);&lt;br /&gt;— пользователи, не написавшие ни одного сообщения в течение месяца с момента регистрации;&lt;br /&gt;— пользователи, не написавшие ни одного сообщения в течение трех месяцев со дня своего последнего сообщения;&lt;br /&gt;— пользователи, технически не справляющиеся с форумом (неправильная расстановка тэгов форматирования текста сообщений). Игнорирование правил оформление сообщений на форуме, в частности неиспользование BB кодов для цитат, фрагментов кода могут привести к перемещению темы в раздел &amp;quot;свалка&amp;quot;;&lt;/p&gt;
						&lt;p&gt;Другие положения.&lt;/p&gt;
						&lt;p&gt;Не забывайте читать объявления и соблюдать Правила, действующие в каждом отдельном разделе.&lt;br /&gt;Помните, что кроме Общих Правил и Правил Форумов, на конференции действуют правила Хорошего Тона.&lt;br /&gt;Все гости и участники должны уважать себя и своих собеседников.&lt;/p&gt;
						&lt;p&gt;Сообщения модератора, не относящиеся к модерации, носят частный характер и не являются точкой зрения администрации!&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 17:51:13 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=33#p33</guid>
		</item>
		<item>
			<title>Активность Форума!</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=32#p32</link>
			<description>&lt;p&gt;Ув-Пасетители в Данный Момент форум находится в Разработке Вазможны Кратко Временные Отключения&amp;#160; :flag:&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 17:49:27 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=32#p32</guid>
		</item>
		<item>
			<title>Продажа Хостингов!</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=31#p31</link>
			<description>&lt;p&gt;Host Color: VPS Hosting from $18.95/month &lt;br /&gt;	 	Virtuozzo Power Panel&lt;br /&gt;512 RAM, 20 GB space, 500 GB transfer - only $18.95/month&lt;br /&gt;Instant upgrade up to 4 GB RAM&lt;br /&gt;cPanel/WHM control panel - only $12/month&lt;br /&gt;Fully Redundant Network and data centers in U.S. and Europe&lt;br /&gt;Fully Managed Service - $24.95/month&lt;br /&gt;Root Access and Choise of OS (Linux distributions)&lt;br /&gt;Famous 24x7 support on 1-888-222-1495&lt;/p&gt;
						&lt;p&gt;Liquid Web Managed VPS, Heroic Support &lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; Fully managed virtual private servers starting at $60/mth! Premium Tier 1 bandwidth. Powered by Virtuozzo. Fully Managed proactive 24/7/365 phone support. 100% uptime SLA! 1-800-580-4985 &lt;/p&gt;
						&lt;p&gt;BUILD Your Custom VPS starting at just $5/mo! &lt;br /&gt;	 	Minimal spec of 512 MB Guaranteed RAM&lt;br /&gt;First Month Fully Managed by us!&lt;br /&gt;7 Day Money Back Guarantee&lt;br /&gt;SolusVM VPS Management&lt;br /&gt;FREE cPanel and DirectAdmin offer!&lt;br /&gt;Over 1300 VPS&#039;s sold THIS YEAR! Come on and join us! &lt;/p&gt;
						&lt;p&gt;Fully Managed Virtual Private Servers from WiredTree &lt;/p&gt;
						&lt;p&gt;	 	Fully Managed Virtual Private Servers from WiredTree &lt;br /&gt;Fully Managed. Average Ticket Response Under 15 Minutes &lt;br /&gt;24x7 Toll-Free Phone Support &lt;br /&gt;Proactive Service Monitoring &lt;br /&gt;100% Network Uptime Guarantee &lt;br /&gt;ServerShield Server Hardening and Optimization &lt;br /&gt;Scalable from VPS to Load Balanced Clusters &lt;/p&gt;
						&lt;p&gt;JaguarPC Managed VPS starting under $20/mo &lt;/p&gt;
						&lt;p&gt;&amp;#160; &amp;#160; JaguarPC is the pioneer of vps and long time contributor of WHT. Every WHT client will receive a lifetime discount, FREE extra diskspace, extra ram, extra bandwidth, r1soft backups, and more. JaguarPC provides powerful servers, extreme uptime, and legendary support at an affordable price. We just rock! &lt;/p&gt;
						&lt;p&gt;Managed VPS Specialists - From $20/mo &lt;/p&gt;
						&lt;p&gt;	 	Flexibility and power of a dedicated server at a fraction of the cost! 24x7 unbeatable support - all level 3 techs. Virtuozzo Technology. Powerful Dual Opterons with premium bandwidth. 30 day money back guarantee. Free Setup! &lt;/p&gt;
						&lt;p&gt;RELAX. Your server is up and running. &lt;br /&gt;	 	Dedicated Server Performance at VPS Prices&lt;br /&gt;Reliable Enterprise Class VPS &amp;amp; Dedicated Hosting&lt;br /&gt;CentOS, cPanel and Plesk interfaces, and available software in the thousands!&lt;br /&gt;Free nightly backups and cPanel to cPanel migration!&lt;br /&gt;Critically Acclaimed Managed Services Team support 24/7/365&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;HOSTV - World Class VPS - Video/Media Hosting Specialist &lt;br /&gt;	 	LIMITED TIME 50% OFF! Coupon Code &amp;quot;50PROMO&amp;quot; &lt;br /&gt;FREE cPanel/WHM, Setup &amp;amp; Customizations &lt;br /&gt;FREE 24/7 Premium Support &amp;amp; Security Updates &lt;br /&gt;Pre-Installed Softwares &amp;amp; Security (PHP, MySQL, EMAIL, FTP &amp;amp; More) &lt;br /&gt;World Class Network, RAID-10 Storage, Premium Hardware &lt;br /&gt;Video Hosting Specialist, FFMPEG, RED5 &amp;amp; More!&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 17:37:46 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=31#p31</guid>
		</item>
		<item>
			<title>Продажа Доменов!</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=30#p30</link>
			<description>&lt;p&gt;Ув-Програмисты и Любители к Вашему Вниманию Мы Рады вам сказать тчо Теперь Домены&amp;#160; 1 Уровня в Зоне &lt;span style=&quot;color: red&quot;&gt;www.ваша ссылка.tk &lt;/span&gt;Можно Приобрести у нас!&lt;br /&gt;По Низким Ценам!&lt;/p&gt;
						&lt;p&gt;Домен 1 Уровня .&lt;span style=&quot;color: red&quot;&gt;tk&lt;/span&gt; на 1 &lt;span style=&quot;color: red&quot;&gt;Год=4$&lt;/span&gt;&lt;/p&gt;
						&lt;p&gt;&lt;span style=&quot;color: red&quot;&gt;Писать Администратору BOPOH!&lt;/span&gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 17:36:37 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=30#p30</guid>
		</item>
		<item>
			<title>Perl-совместимые выражения</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=29#p29</link>
			<description>&lt;p&gt;PHP поддерживает ряд функций для работы с Perl-совместимыми регулярными выражениями (PCRE - Perl Compatible Regular Expression). Такие выражения заключаются в ограничители, в качестве которых, как правило, используется прямой слеш:&lt;br /&gt;/mail/&lt;/p&gt;
						&lt;p&gt;Это выражение соответствует строке, содержащей слово &amp;quot;mail&amp;quot;.&lt;/p&gt;
						&lt;p&gt;За ограничителями могут следовать модификаторы, уточняющие регулярное выражение. Наиболее часто используют следующие модификаторы:&lt;br /&gt;i (Игнорировать регистр при поиске соответствия. Т. е. выражение &amp;quot;/mail/i&amp;quot; будет соответствовать как строке &amp;quot;MAIL&amp;quot;, так и строке &amp;quot;mail&amp;quot;.);&lt;br /&gt;x (Игнорировать пробельные символы).&lt;/p&gt;
						&lt;p&gt;Для PCRE-выражений характерно применение общих типов символов, которые аналогичны классам символов для регулярных выражений в стиле POSIX. Наиболее часто встречающиеся общие типы символов приведены ниже.&lt;br /&gt;\d - соответствие десятичной цифре&lt;br /&gt;\D - соответствие любому символу, за исключением десятичных цифр&lt;br /&gt;\s - соответствие пробельным символам&lt;br /&gt;\S - соответствие любым символам, кроме пробельных&lt;br /&gt;\h - наличие границы слова&lt;br /&gt;\B - отсутствие границы слова&lt;br /&gt;\Z - конец строки или символ перевода конца строки&lt;br /&gt;\A - начало строки&lt;/p&gt;
						&lt;p&gt;Теперь рассмотрим основные функции, которые есть в PHP для работы с PCRE-выражениями.&lt;br /&gt;preg_match()&lt;br /&gt;&amp;#160; int preg_match (string pattern, string subject [, array matches])&lt;/p&gt;
						&lt;p&gt;Эта функция ищет в строке subject соответствие регулярному выражению pattern. Если задан необязательный параметр matches, то результаты поиска помещаются в массив.&lt;/p&gt;
						&lt;p&gt;Приведем несколько примеров.&lt;br /&gt;&amp;lt;?&lt;br /&gt;&amp;#160; $str = &amp;quot;PHP один из лучших языков программирования для Web&amp;quot;;&lt;br /&gt;&amp;#160; if (preg_match (&amp;quot;/php/i&amp;quot;, $str)) &lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; echo(&amp;quot;Соответствие найдено&amp;quot;);&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; else&lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; echo(&amp;quot;Соответствие не найдено&amp;quot;);&lt;br /&gt;&amp;#160; }&lt;br /&gt;?&amp;gt;&lt;/p&gt;
						&lt;p&gt;Результат:&lt;br /&gt;Соответствие найдено&lt;br /&gt;&amp;lt;?&lt;br /&gt;&amp;#160; $str = &amp;quot;PHP один из лучших языков программирования для Web&amp;quot;;&lt;br /&gt;&amp;#160; if (preg_match (&amp;quot;/\bweb\b/i&amp;quot;, $str)) &lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; echo(&amp;quot;Соответствие найдено&amp;quot;);&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; else&lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; echo(&amp;quot;Соответствие не найдено&amp;quot;);&lt;br /&gt;&amp;#160; }&lt;br /&gt;?&amp;gt;&lt;/p&gt;
						&lt;p&gt;Результат:&lt;br /&gt;Соответствие найдено&lt;br /&gt;&amp;lt;?&lt;br /&gt;&amp;#160; // получаем www-адрес (имя хоста) из url&lt;br /&gt;&amp;#160; $url = &amp;quot;http://www.php.net/download.html&amp;quot;;&lt;br /&gt;&amp;#160; preg_match(&amp;quot;/^(http:\/\/)?([^\/]+)/i&amp;quot;, $url, $matches);&lt;br /&gt;&amp;#160; $host = $matches[2];&lt;br /&gt;&amp;#160; echo(&amp;quot;www-адрес: $host&amp;quot;);&lt;br /&gt;&amp;#160; echo(&amp;quot;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;&amp;#160; // получаем последние два сегмента имени хоста (доменное имя)&lt;br /&gt;&amp;#160; preg_match(&amp;quot;/[^\.\/]+\.[^\.\/]+$/&amp;quot;, $host, $matches);&lt;br /&gt;&amp;#160; echo &amp;quot;доменное имя: {$matches[0]}\n&amp;quot;;&lt;br /&gt;?&amp;gt;&lt;/p&gt;
						&lt;p&gt;Результат:&lt;br /&gt;www-адрес: wwwphp.net&lt;br /&gt;доменное имя: php.net&lt;br /&gt;preg_replace()&lt;br /&gt;mixed preg_replace (mixed pattern, mixed replacement, mixed subject&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; 	[,int limit])&lt;/p&gt;
						&lt;p&gt;Эта функция ищет в строке subject соответствия регулярному выражению pattern, и заменяет их на replacement. Необязательного параметр limit задает число соответствий, которые надо заменить. Если этот параметр не указан, или равен -1, то заменяются все найденные соответствия.&lt;br /&gt;&amp;lt;?&lt;br /&gt;&amp;#160; $str = &amp;quot;May 15, 2003&amp;quot;;&lt;br /&gt;&amp;#160; $pattern = &amp;quot;/(\w+) (\d+), (\d+)/i&amp;quot;;&lt;br /&gt;&amp;#160; $replacement = &amp;quot;1 \${1} \$3&amp;quot;;&lt;br /&gt;&amp;#160; print preg_replace($pattern, $replacement, $str);&lt;br /&gt;?&amp;gt;&lt;/p&gt;
						&lt;p&gt;Результат:&lt;br /&gt;1 May 2003&lt;/p&gt;
						&lt;p&gt;А вот как можно написать функцию, которая будет практически полным аналогом функции htmlspecialchars.&lt;br /&gt;&amp;lt;?&lt;br /&gt;&amp;#160; function my_htmlspecialchats($document)&lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; $search = array (&amp;quot;&#039;]*?&amp;gt;.*?&#039;si&amp;quot;,&amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;quot;&#039;&amp;lt;[\/\!]*?[^&amp;lt;&amp;gt;]*?&amp;gt;&#039;si&amp;quot;,&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;quot;&#039;([\r\n])[\s]+&#039;&amp;quot;,&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;quot;&#039;&amp;amp;(quot|#34);&#039;i&amp;quot;,&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;quot;&#039;&amp;amp;(amp|#38);&#039;i&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;quot;&#039;&amp;amp;(lt|#60);&#039;i&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;quot;&#039;&amp;amp;(gt|#62);&#039;i&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;quot;&#039;&amp;amp;(nbsp|#160);&#039;i&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;quot;&#039;&amp;amp;(iexcl|#161);&#039;i&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;quot;&#039;&amp;amp;(cent|#162);&#039;i&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;quot;&#039;&amp;amp;(pound|#163);&#039;i&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;quot;&#039;&amp;amp;(copy|#169);&#039;i&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;&amp;quot;&#039;&amp;amp;#(\d+);&#039;e&amp;quot;);&lt;br /&gt;&amp;#160; &amp;#160; $replace = array (&amp;quot;&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;quot;&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;quot;\\1&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;quot;\&amp;quot;&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;quot;&amp;amp;&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;quot;&amp;lt;&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;quot;&amp;gt;&amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;quot; &amp;quot;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; chr(161),&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; chr(162),&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; chr(163),&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; chr(169),&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;quot;chr(\\1)&amp;quot;);&lt;br /&gt;&amp;#160; &amp;#160; $text = preg_replace ($search, $replace, $document);&lt;br /&gt;&amp;#160; &amp;#160; return $text;&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; $doc = &amp;quot;alert;&amp;quot;; // напишем java-скрипт&lt;br /&gt;&amp;#160; my_htmlspecialchats($doc);&amp;#160; // выводит &amp;quot;alert;&amp;quot;&lt;br /&gt;&amp;#160; echo($doc);&lt;br /&gt;?&amp;gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 15:13:28 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=29#p29</guid>
		</item>
		<item>
			<title>Функции для работы</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=28#p28</link>
			<description>&lt;p&gt;Функции для работы с регулярными выражениями&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;PHP поддерживает два вида записи регулярных выражений: POSIX и Perl. POSIX расшифровывается как Portable Operating System Interface (интерфейс переносной операционной системы) и является стандартом для интерфейсов приложений. В этом разделе мы будем работать с регулярными выражениями в стиле POSIX, а позже рассмотрим Perl-совместимые регулярные выражения.&lt;/p&gt;
						&lt;p&gt;В общем случае, функции для работы с регулярными выражениями выполняются более медленно, чем строковые функции, предоставляющие аналогичные возможности. Поэтому, если можно без ущерба для эффективности приложения использовать строковые функции, их следует использовать.&lt;br /&gt;ereg()&lt;br /&gt;&amp;#160; bool ereg(string pattern, string string [, array regs])&lt;/p&gt;
						&lt;p&gt;Данная функция ищет в строке string соответствие регулярному выражению, заданному в шаблоне pattern. Если соответствия подвыражений с шаблоном будут найдены, то они сохраняются в массиве соответствий regs. При этом $regs[0] содержит копию строки string, $regs[1] содержит подстроку, начинающуюся с первой левой скобки, $regs[2] хранит подстроку, начинающуюся со второй левой скобки и т.д.&lt;/p&gt;
						&lt;p&gt;Ниже приведен код, преобразующий дату из формата YYYY-MM-DD в формат DD.MM.YYYY.&lt;br /&gt;&amp;lt;?&lt;br /&gt;&amp;#160; $date = &amp;quot;2003-03-21&amp;quot;;&lt;br /&gt;&amp;#160; if (ereg (&amp;quot;([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})&amp;quot;, $date, $regs)) &lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; echo &amp;quot;$regs[3].$regs[2].$regs[1]&amp;quot;;&lt;br /&gt;&amp;#160; } &lt;br /&gt;&amp;#160; else &lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; echo &amp;quot;Неверный формат даты: $date&amp;quot;;&lt;br /&gt;&amp;#160; }&lt;br /&gt;?&amp;gt;&lt;br /&gt;ereg_replace()&lt;br /&gt;&amp;#160; string ereg_replace(string pattern, string replacement, string string)&lt;/p&gt;
						&lt;p&gt;Эта функция заменяет найденный в строке string шаблон pattern на строку replacement и, если соответствие было найдено, возвращает модифицированную строку.&lt;/p&gt;
						&lt;p&gt;Одной из частых ошибок при замене числовых значений является указание числа как типа, отличного от строкового, что приводит к неверному результату. Синтаксис функции таков, что число обязательно должно быть записано как строка.&lt;br /&gt;&amp;lt;?&lt;br /&gt;&amp;#160; $number = &amp;quot;1952&amp;quot;;&lt;br /&gt;&amp;#160; $str = &amp;quot;Он родился в пятьдесят втором.&amp;quot;;&lt;br /&gt;&amp;#160; echo(&amp;quot;до замены:$str&amp;quot;);&lt;br /&gt;&amp;#160; $str = ereg_replace(&amp;quot;пятьдесят втором&amp;quot;, $number, $str);&lt;br /&gt;&amp;#160; echo(&amp;quot;&amp;lt;br&amp;gt; после замены: $str&amp;quot;);&lt;br /&gt;?&amp;gt;&lt;/p&gt;
						&lt;p&gt;Результат:&lt;br /&gt;до замены: Он родился в пятьдесят втором.&lt;br /&gt;после замены: Он родился в 1952.&lt;br /&gt;eregi()&lt;br /&gt;&amp;#160; bool eregi (string pattern, string string[, array regs])&lt;/p&gt;
						&lt;p&gt;Эта функция идентична функции ereg, за исключением того, что она игнорирует регистр.&lt;br /&gt;eregi_replace()&lt;br /&gt;&amp;#160; string eregi_replace (string pattern, string replacement, string string)&lt;/p&gt;
						&lt;p&gt;Функция аналогична функции ereg_replace, за исключением того, что она является нечувствительной к регистру.&lt;br /&gt;split()&lt;br /&gt;&amp;#160; array split (string pattern, string string [, int limit])&lt;/p&gt;
						&lt;p&gt;Эта функция возвращает массив строк, которые представляют собой подстроки строки string, образованные в результате разделения строки string на подстроки в соответствии с регулярным выражением pattern. Если указан необязательный параметр limit, то в возвращаемом массиве будет не больше limit элементов, последний из которых содержит неразделенную часть строки.&lt;/p&gt;
						&lt;p&gt;Эта функция полезна при разделении дат, доменных имен и т.д.&lt;/p&gt;
						&lt;p&gt;К примеру:&lt;br /&gt;&amp;lt;?&lt;br /&gt;&amp;#160; $url = &amp;quot;www.softtime.ru&amp;quot;;&lt;br /&gt;&amp;#160; $array = split (&amp;quot;\.&amp;quot;, $url);&lt;br /&gt;&amp;#160; foreach($array as $index =&amp;gt; $val)&lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; echo(&amp;quot;$index -&amp;gt; $val &amp;lt;br /&amp;gt;&amp;quot;);&lt;br /&gt;&amp;#160; }&lt;br /&gt;?&amp;gt;&lt;/p&gt;
						&lt;p&gt;Результат:&lt;br /&gt;0 -&amp;gt; www &lt;br /&gt;1 -&amp;gt; softtime &lt;br /&gt;2 -&amp;gt; ru&lt;/p&gt;
						&lt;p&gt;То же самое можно проделать с датой:&lt;br /&gt;&amp;lt;?&lt;br /&gt;&amp;#160; $date = &amp;quot;10-12-2003&amp;quot;;&lt;br /&gt;&amp;#160; $array = split (&amp;quot;-&amp;quot;, $date);&lt;br /&gt;&amp;#160; foreach($array as $index =&amp;gt; $val)&lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; echo(&amp;quot;$index -&amp;gt; $val &amp;lt;br /&amp;gt;&amp;quot;);&lt;br /&gt;&amp;#160; }&lt;br /&gt;?&amp;gt;&lt;/p&gt;
						&lt;p&gt;Результат:&lt;br /&gt;0 -&amp;gt; 10 &lt;br /&gt;1 -&amp;gt; 12 &lt;br /&gt;2 -&amp;gt; 2003&lt;br /&gt;spliti()&lt;br /&gt;&amp;#160; array spliti (string pattern, string string [, int limit])&lt;/p&gt;
						&lt;p&gt;Эта функция аналогична функции split, за исключением того, что является нечувствительной к регистру.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 15:13:04 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=28#p28</guid>
		</item>
		<item>
			<title>Классы символов</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=27#p27</link>
			<description>&lt;p&gt;Классами символов называются сокращенные обозначения для предопределенных символов.&lt;br /&gt;Класс [[:alnum:]] - буквенно-цифровые символы&lt;br /&gt;Класс [[:digit:]] - десятичные цифровые символы&lt;br /&gt;Класс [[:xdigit:]] - шестнадцатеричные цифровые символы&lt;br /&gt;Класс [[:alpha:]] - буквенные символы&lt;br /&gt;Класс [[:upper:]] - прописные буквенные символы&lt;br /&gt;Класс [[:lower:]] - строчные буквенные символы&lt;br /&gt;Класс [[:punct:]] - знаки пунктуации&lt;br /&gt;Класс [[:space:]] - символы пробела&lt;br /&gt;Класс [[:blanc:]] - символы табуляции и пробела&lt;br /&gt;Класс [[:print:]] - печатные символы&lt;br /&gt;Класс [[:cntrl:]] - управляющие символы&lt;br /&gt;Класс [[:graph:]] - печатные символы, за исключением пробельные&lt;/p&gt;
						&lt;p&gt;Вы можете использовать классы символов в регулярных выражениях точно также как и остальные символы. К примеру:&lt;br /&gt;Эквивалентом выражения &amp;quot;[a-zA-Z_0-9]&amp;quot; является выражение &amp;quot;[[:alnum:]]&amp;quot;;&lt;br /&gt;Выражению &amp;quot;[0-9]&amp;quot; эквивалентно выражение &amp;quot;[[:digit:]]&amp;quot;&lt;br /&gt;Выражению &amp;quot;[a-Z]&amp;quot; эквивалентно регулярное выражение &amp;quot;[[:alpha:]]&amp;quot;.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 15:12:39 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=27#p27</guid>
		</item>
		<item>
			<title>Спец символы</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=26#p26</link>
			<description>&lt;p&gt;Сопоставление со специальными символами&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;В тех случаях, когда нужно сопоставить выражение строке, в которой встречаются спецсимволы, о которых говорилось выше в этой главе, такие как $, ^, { и т. д., перед ними ставится символ обратной косой черты (\). Например, для того, чтобы найти в строке символ $, в регулярном выражении нужно написать &amp;quot;\$&amp;quot;.&lt;/p&gt;
						&lt;p&gt;В тех случаях, когда перед символом стоит обратная косая черта, говорят, что символ записан в виде escape-последовательности.&lt;/p&gt;
						&lt;p&gt;То же самое относится и к самому символу обратной косой черты. Если нужно провести сопоставление с символом обратной косой черты, то в этом случае ставится две обратных косых черты, т. е. \\.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 15:12:21 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=26#p26</guid>
		</item>
		<item>
			<title>Начало и конец строки</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=25#p25</link>
			<description>&lt;p&gt;Соответствие началу и концу строки&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;В регулярном выражении можно указать, должно ли конкретное подвыражение встречаться в начале, в конце строки или и в начале и в конце строки.&lt;/p&gt;
						&lt;p&gt;Символ ^ соответствует началу строки:&lt;br /&gt;&amp;quot;^xy&amp;quot;&lt;/p&gt;
						&lt;p&gt;Такое выражение соответствует любой строке, начинающейся с xy. Обратите внимание, что в этом случае символ ^ ставится за пределами выражения в скобках, к примеру:&lt;br /&gt;&amp;quot;^[a-z]&amp;quot;&lt;/p&gt;
						&lt;p&gt;Знак доллара $ соответствует концу строки:&lt;br /&gt;&amp;quot;xy$&amp;quot;&lt;/p&gt;
						&lt;p&gt;Это регулярное выражение соответствует любой строке, заканчивающейся на xy.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 15:12:01 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=25#p25</guid>
		</item>
		<item>
			<title>Подвыражения</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=24#p24</link>
			<description>&lt;p&gt;Подвыражения&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Иногда бывает удобно создавать регулярное выражение таким образом, чтобы можно было, к примеру, сказать, что, по крайней мере, за одной из строк &amp;quot;морская&amp;quot;, следует точно строка &amp;quot;волна&amp;quot;. Для этого регулярное выражение разбивают на подвыражения с помощью круглых скобок:&lt;br /&gt;(морская)*волна&lt;/p&gt;
						&lt;p&gt;Это выражение соответствует строкам &amp;quot;волна&amp;quot;, &amp;quot;морская волна&amp;quot;, &amp;quot;морская морская волна&amp;quot; и т.д.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 15:11:43 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=24#p24</guid>
		</item>
		<item>
			<title>Границы</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=23#p23</link>
			<description>&lt;p&gt;Границы&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Границы - это числа в фигурных скобках, указывающие количество вхождений в строку фрагмента выражения, непосредственно предшествующего границе:&lt;br /&gt;&amp;quot;xy{2}&amp;quot; соответствует строке, в которой за x следует два y;&lt;br /&gt;&amp;quot;xy{2,}&amp;quot; соответствует строке, в которой за x следует не менее двух y (может быть и больше);&lt;br /&gt;&amp;quot;xy{2,6}&amp;quot; соответствует строке, в которой за x следует от двух до шести y;&lt;/p&gt;
						&lt;p&gt;Для указания количества вхождений не одного символа, а их последовательности, используются круглые скобки:&lt;br /&gt;&amp;quot;x(yz){2,6}&amp;quot; соответствует строке, в которой за x следует от двух до шести последовательностей yz;&lt;br /&gt;&amp;quot;x(yz)*&amp;quot; соответствует строке, в которой за x следует ноль и более последовательностей yz;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 15:11:26 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=23#p23</guid>
		</item>
		<item>
			<title>Квалификаторы</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=22#p22</link>
			<description>&lt;p&gt;Квалификаторы&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Регулярное выражение можно уточнить при помощи квалификаторов - так называются символы +, ?, *. Квалификаторы говорят о том, сколько раз последовательность символов может встретиться в строке и указываются непосредственно после той части выражения, к которой они применяются:&lt;br /&gt;&amp;quot;a+&amp;quot; - хотя бы один а (строки &amp;quot;абв&amp;quot; и &amp;quot;абва&amp;quot; соответствуют этому выражению, а строка &amp;quot;укр&amp;quot; - нет);&lt;br /&gt;&amp;quot;a?&amp;quot; - ноль или один а (строки &amp;quot;абв&amp;quot; и &amp;quot;укр&amp;quot; соответствуют этому выражению, а строка &amp;quot;абва&amp;quot; - нет);&lt;br /&gt;&amp;quot;a*&amp;quot; - ноль или более а (строки &amp;quot;абв&amp;quot; и &amp;quot;абва&amp;quot; и &amp;quot;укр&amp;quot; соответствуют этому выражению).&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 15:11:10 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=22#p22</guid>
		</item>
		<item>
			<title>Квалификаторы</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=21#p21</link>
			<description>&lt;p&gt;Для исключения последовательности символов из поиска перед этой ней ставится символ &amp;quot;^&amp;quot;:&lt;br /&gt;&amp;quot;[^а-я]&amp;quot;&lt;/p&gt;
						&lt;p&gt;Это регулярное выражение отвечает любому символу, не содержащемуся в диапазоне а-я. Обратите внимание, что символ ^ находится внутри квадратных скобок, так как только в этом случае он имеет значение &amp;quot;не&amp;quot;. При использовании символа ^ вне квадратных скобок, он имеет совсем иное значение, о чем пойдет речь немного позже.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 15:10:48 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=21#p21</guid>
		</item>
		<item>
			<title>Исключающее выражение</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=20#p20</link>
			<description>&lt;p&gt;Исключающее выражение&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Для исключения последовательности символов из поиска перед этой ней ставится символ &amp;quot;^&amp;quot;:&lt;br /&gt;&amp;quot;[^а-я]&amp;quot;&lt;/p&gt;
						&lt;p&gt;Это регулярное выражение отвечает любому символу, не содержащемуся в диапазоне а-я. Обратите внимание, что символ ^ находится внутри квадратных скобок, так как только в этом случае он имеет значение &amp;quot;не&amp;quot;. При использовании символа ^ вне квадратных скобок, он имеет совсем иное значение, о чем пойдет речь немного позже.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 15:10:28 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=20#p20</guid>
		</item>
		<item>
			<title>Ветви</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=19#p19</link>
			<description>&lt;p&gt;Ветви&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;В регулярном выражении может быть несколько ветвей, которые разделяются символом |, действующим как оператор OR (ИЛИ). Т. е., если в выражении используются ветви, то для соответствия регулярного выражения какой-либо строке, достаточно, чтобы только одна из ветвей соответствовала этой строке:&lt;br /&gt;&amp;quot;abc|абв&amp;quot;&lt;/p&gt;
						&lt;p&gt;Этому регулярному выражению соответствует любая строка, содержащая подстроки &amp;quot;abc&amp;quot; или &amp;quot;абв&amp;quot;. Ветвление удобно применять при проверке расширений и имен файлов, зон доменных имен и т. д. К примеру, следующее регулярное выражение проверяет, содержатся ли в строке подстроки &amp;quot;ru&amp;quot;, &amp;quot;com&amp;quot; или &amp;quot;net&amp;quot;:&lt;br /&gt;&amp;quot;ru|com|net&amp;quot;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 15:10:09 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=19#p19</guid>
		</item>
		<item>
			<title>Групповой символ</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=18#p18</link>
			<description>&lt;p&gt;Групповой символ&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;При создании регулярных выражений часто удобно пользоваться групповым символом точки &amp;quot;.&amp;quot;, который объединяет два одиночных символа, за исключением символа \n. К примеру:&lt;br /&gt;&amp;#160; .ок&lt;/p&gt;
						&lt;p&gt;Это выражение, в частности соответствует строкам &amp;quot;кок&amp;quot;, &amp;quot;док&amp;quot;, &amp;quot;ток&amp;quot;.&lt;/p&gt;
						&lt;p&gt;Выражение&lt;br /&gt;&amp;#160; &amp;#160;&amp;quot;x.[0-9]&amp;quot;&lt;/p&gt;
						&lt;p&gt;соответствует строке, содержащей символ x, за которым идет любой другой символ и цифры от 0 до 9. Этому критерию, к примеру, удовлетворяют строки &amp;quot;xy1&amp;quot;, &amp;quot;xz2&amp;quot; и т. д.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 15:09:52 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=18#p18</guid>
		</item>
		<item>
			<title>Регулярные выражения</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=17#p17</link>
			<description>&lt;p&gt;Ранее для поиска в строке подстроки мы использовали строковые функции, ограничиваясь при этом случаями точного соответствия строк и подстрок. Для работы со строками можно использовать также регулярные выражения, представляющие собой, по сути, мини-язык описаний для поиска в строках информации по заданному шаблону.&lt;/p&gt;
						&lt;p&gt;С помощью регулярных выражений можно найти в строке подстроку, удовлетворяющую заданному шаблону и извлечь ее, проверить существует ли заданная строка и т.д.&lt;/p&gt;
						&lt;p&gt;Алгоритм поиска с использованием регулярных выражений был впервые разработан одним из создателей UNIX Кеном Томпсоном. Интересно, что изначально регулярные выражения появились не в теории вычислительных систем, а в нейрофизиологии. Основу теории регулярных выражений заложили нейрофизиологи У. Мак-Каллох и У. Питтс, работавшие над способами математического описания нервных процессов. Позднее математик С. Клини, основываясь на этих исследованиях, опубликовал работу &amp;quot;Представление событий в нейронных сетях&amp;quot;, в которой и было введено понятие регулярных выражений. Кен Томпсон, основываясь на этих работах, адаптировал теорию регулярных выражений для алгоритмов поиска информации. Именно начиная с его работ, регулярные выражения стали использоваться в текстовых редакторах и вошли во многие языки программирования.&lt;br /&gt;Базовый синтаксис и создание регулярных выражений&lt;/p&gt;
						&lt;p&gt;Простейшее регулярное выражение можно записать так:&lt;br /&gt;&amp;quot;abc&amp;quot;&lt;/p&gt;
						&lt;p&gt;Это выражение соответствует любой строке, которая содержит подстроку &amp;quot;abc&amp;quot;.&lt;/p&gt;
						&lt;p&gt;Существует такое понятие, как выражение в квадратных скобках. Квадратные скобки ограничивают поиск теми символами, которые в них заключены:&lt;br /&gt;&amp;quot;[abc]&amp;quot;&lt;/p&gt;
						&lt;p&gt;Этому регулярному выражению соответствует любая строка, содержащая abc либо вместе, либо каждый из них в отдельности. Выражение в квадратных скобках иногда еще называют бра-кет выражением.&lt;/p&gt;
						&lt;p&gt;Допустим, нам нужно создать регулярное выражение, соответствующее всем буквам русского алфавита. В этом случае мы можем, конечно, перечислить все эти буквы в регулярном выражении. Это допустимо, но утомительно и неэлегантно. Более коротко такое регулярное выражение можно записать следующим образом:&lt;br /&gt;&amp;quot;[а-Я]&amp;quot;&lt;/p&gt;
						&lt;p&gt;Это выражение соответствует всем буквам русского алфавита, поскольку любые два символа, разделяемые дефисом, задают соответствие диапазону символов, находящихся между ними. Заметьте, что регулярное выражение &amp;quot;[а-Я]&amp;quot; описывает символы как нижнего, так и верхнего регистров, поэтому более подробно это выражение можно записать так:&lt;br /&gt;&amp;quot;[а-яА-Я]&amp;quot;&lt;/p&gt;
						&lt;p&gt;Точно таким же образом задаются регулярные выражения, соответствующие числам:&lt;br /&gt;&amp;quot;[0-9]&amp;quot;&lt;br /&gt;&amp;#160; или&lt;br /&gt;&amp;quot;[0123456789]&amp;quot;&lt;/p&gt;
						&lt;p&gt;Оба этих выражения эквивалентны и соответствует любой цифре.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 15:09:27 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=17#p17</guid>
		</item>
		<item>
			<title>Методы PUT и POST</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=16#p16</link>
			<description>&lt;p&gt;Методы PUT и POST&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Методы HTTP PUT и HTTP POST предназначены для загрузки файлов на сервер.&lt;/p&gt;
						&lt;p&gt;Протокол HTTP предоставляет три метода для работы с информацией, находящейся на Web-сервере: GET, PUT и POST. Метод GET применяется для получения Web-страниц, при этом все переменные формы передаются в URL. Поскольку на многих Web-серверах установлено ограничение на максимальную длину URL (как правило, не более 1024), не стоит применять метод GET, если требуется передача данных большего объема.&lt;/p&gt;
						&lt;p&gt;Метод PUT применяется для обновления информации на сервере, и требует, чтобы содержимое запроса HTTP PUT сохранялось на сервере. Запрос выглядит таким образом:&lt;br /&gt;&amp;#160; &amp;#160;PUT /path/filename.html HTTP/1.1&lt;/p&gt;
						&lt;p&gt;В этом случае Web-сервер должен сохранить содержимое этого запроса в виде /path/filename.html в пространстве имен URL Web-сервера. По умолчанию сам Web-сервер не выполняет такие запросы, а задает CGI-сценарий для их обработки. В Apache назначить сценарий для обработки PUT-запросов, можно изменив директиву Script, находящуюся в файле httpd.conf, к примеру, так:&lt;br /&gt;&amp;#160; &amp;#160;Script PUT /cgi-bin/put.cgi&lt;/p&gt;
						&lt;p&gt;Это означает, что обрабатывать PUT-запросы будет CGI-скрипт put.cgi.&lt;/p&gt;
						&lt;p&gt;Как правило, для загрузки файлов на сервер используют метод HTTP POST. Этот метод позволяет передавать большие объемы данных из формы и сохраняет все переменные формы в теле запроса.&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 15:08:49 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=16#p16</guid>
		</item>
		<item>
			<title>Работа с каталогами</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=15#p15</link>
			<description>&lt;p&gt;Работа с каталогами&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Для установки текущего каталога применяется функция chdir:&lt;br /&gt;&amp;#160; int chdir ( string directory)&lt;/p&gt;
						&lt;p&gt;Работать с этой функцией можно следующим образом:&lt;br /&gt;chdir(&amp;quot;/tmp/data&amp;quot;); // переход по абсолютному пути&lt;br /&gt;chdir(&amp;quot;./js&amp;quot;); // переход в подкаталог текущего каталога&lt;br /&gt;chdir(&amp;quot;..&amp;quot;); // переход в родительский каталог&lt;br /&gt;chdir(&amp;quot;~/data&amp;quot;); // переходим в /home/пользователь/data (для Unix)&lt;/p&gt;
						&lt;p&gt;Чтобы узнать текущий каталог можно воспользоваться функцией getcwd:&lt;br /&gt;&amp;#160; string getcwd ( string path)&lt;/p&gt;
						&lt;p&gt;Для того чтобы открыть каталог используется функция opendir, открывающая каталог, заданный параметром path:&lt;br /&gt;&amp;#160; int opendir ( string path)&lt;/p&gt;
						&lt;p&gt;После того, как каталог открыт, прочитать его можно функцией readdir:&lt;br /&gt;&amp;#160; string readdir ( int dir)&lt;/p&gt;
						&lt;p&gt;Эта функция возвращает имена элементов, содержащихся в каталоге. Кроме файлов и папок в каталогах находятся также элементы &amp;quot;.&amp;quot; и &amp;quot;..&amp;quot;. Первый элемент указывает на текущий каталог, а второй - на родительский. Текущий каталог, кстати, можно открыть, указав его имя как &amp;quot;.&amp;quot;:&lt;br /&gt;&amp;#160; &amp;#160;$dir = opendir (&amp;quot;.&amp;quot;);&lt;/p&gt;
						&lt;p&gt;После того, как работа с каталогом закончена, его нужно закрыть. Закрытие каталога выполняется при помощи функции closedir:&lt;br /&gt;&amp;#160; void closedir ($dir)&lt;/p&gt;
						&lt;p&gt;Ниже приведен пример, осуществляющий чтение и вывод файлов, находящихся в текущем каталоге.&lt;br /&gt;&amp;lt;?&lt;br /&gt;&amp;#160; $dir = opendir (&amp;quot;.&amp;quot;);&lt;br /&gt;&amp;#160; echo &amp;quot;Files:\n&amp;quot;;&lt;br /&gt;&amp;#160; while ($file = readdir ($dir)) &lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; echo &amp;quot;$file&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; closedir ($dir);&lt;br /&gt;?&amp;gt;&lt;/p&gt;
						&lt;p&gt;Заметим, что эта функция возвращает также &amp;quot;.&amp;quot; и &amp;quot;..&amp;quot;. Если этого делать не нужно, то исключить эти значения можно следующим образом:&lt;br /&gt;&amp;lt;?&lt;br /&gt;&amp;#160; $dir = opendir (&amp;quot;.&amp;quot;);&lt;br /&gt;&amp;#160; while ( $file = readdir ($dir))&lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; if (( $file != &amp;quot;.&amp;quot;) &amp;amp;&amp;amp; ($file != &amp;quot;..&amp;quot;))&lt;br /&gt;&amp;#160; &amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; echo &amp;quot;$file&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; closedir ($dir);&lt;br /&gt;?&amp;gt;&lt;/p&gt;
						&lt;p&gt;В качестве примера на рассмотренные функции, давайте создадим скрипт, удаляющий все файлы из каталога c:/temp, к которым не было доступа в течение суток. Функция удаления файлов в этом случае вызывается рекурсивно.&lt;br /&gt;&amp;lt;?&lt;br /&gt;&amp;#160; function delTemporaryFiles ($directory)&lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; $dir = opendir ($directory);&lt;br /&gt;&amp;#160; while (( $file = readdir ($dir)))&lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; if( is_file ($directory.&amp;quot;/&amp;quot;.$file))&lt;br /&gt;&amp;#160; &amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; $acc_time = fileatime ($directory.&amp;quot;/&amp;quot;.$file);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; $time =&amp;#160; time();&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; if (($time - $acc_time) &amp;gt; 24*60*60)&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; if (&amp;#160; unlink ($directory.&amp;quot;/&amp;quot;.$file))&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; echo (&amp;quot;Файлы успешно удалены&amp;quot;);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; else if ( is_dir ($directory.&amp;quot;/&amp;quot;.$file) &amp;amp;&amp;amp; ($file != &amp;quot;.&amp;quot;) &amp;amp;&amp;amp; ($file != &amp;quot;..&amp;quot;))&lt;br /&gt;&amp;#160; &amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; delTemporaryFiles ($directory.&amp;quot;/&amp;quot;.$file);&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; closedir ($dir);&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; delTemporaryFiles (&amp;quot;c:/temp&amp;quot;);&lt;br /&gt;?&amp;gt;&lt;/p&gt;
						&lt;p&gt;Создание каталогов производится с помощью функции mkdir:&lt;br /&gt;&amp;#160; bool mkdir ( string dirname, int mode)&lt;/p&gt;
						&lt;p&gt;Эта функция создает каталог с именем dirname и правами доступа mode. В случае неудачи возвращает false. Права доступа задаются только для каталогов UNIX, поскольку в Windows этот аргумент игнорируется. Ниже приведен пример создания каталога test в директории c:/temp.&lt;br /&gt;&amp;lt;?&lt;br /&gt;&amp;#160; $flag = mkdir (&amp;quot;c:/temp/test&amp;quot;, 0700);&lt;br /&gt;&amp;#160; if($flag)&lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; echo(&amp;quot;Каталог успешно создан&amp;quot;);&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; else&lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; echo(&amp;quot;Ошибка создания каталога&amp;quot;);&lt;br /&gt;&amp;#160; }&lt;br /&gt;?&amp;gt;&lt;/p&gt;
						&lt;p&gt;Удалить каталог можно с помощью функции rmdir:&lt;br /&gt;&amp;#160; bool rmdir ( string dirname)&lt;/p&gt;
						&lt;p&gt;Теперь удалим только что созданный каталог /test:&lt;br /&gt;&amp;lt;?&lt;br /&gt;&amp;#160; $flag = rmdir (&amp;quot;c:/temp/test&amp;quot;);&lt;br /&gt;&amp;#160; if($flag)&lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; echo(&amp;quot;Каталог успешно удален&amp;quot;);&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; else&lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; echo(&amp;quot;Ошибка удаления каталога&amp;quot;);&lt;br /&gt;&amp;#160; }&lt;br /&gt;?&amp;gt;&lt;/p&gt;
						&lt;p&gt;Функция rmdir удаляет только пустые каталоги. Для того чтобы удалять непустые каталоги, давайте напишем функцию и удалим каталог c:/temp со всеми вложенными папками и файлами:&lt;br /&gt;&amp;lt;?&lt;br /&gt;&amp;#160; function full_del_dir ($directory)&lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; $dir = opendir($directory);&lt;br /&gt;&amp;#160; while(($file = readdir($dir)))&lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; if ( is_file ($directory.&amp;quot;/&amp;quot;.$file))&lt;br /&gt;&amp;#160; &amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; unlink ($directory.&amp;quot;/&amp;quot;.$file);&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; else if ( is_dir ($directory.&amp;quot;/&amp;quot;.$file) &amp;amp;&amp;amp;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;($file != &amp;quot;.&amp;quot;) &amp;amp;&amp;amp; ($file != &amp;quot;..&amp;quot;))&lt;br /&gt;&amp;#160; &amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; full_del_dir ($directory.&amp;quot;/&amp;quot;.$file);&amp;#160; &lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; closedir ($dir);&lt;br /&gt;&amp;#160; rmdir ($directory);&lt;br /&gt;&amp;#160; echo(&amp;quot;Каталог успешно удален&amp;quot;);&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; full_del_dir (&amp;quot;c:/temp&amp;quot;)&lt;br /&gt;?&amp;gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 15:08:28 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=15#p15</guid>
		</item>
		<item>
			<title>Перемещение по файлам</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=14#p14</link>
			<description>&lt;p&gt;Перемещение по файлам&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;При чтении данных из файла указатель текущей позиции перемещается к очередному непрочитанному символу. Существует несколько функций, с помощью которых можно управлять положением этого указателя.&lt;/p&gt;
						&lt;p&gt;Установка указателя текущей позиции в начало файла производится функцией rewind:&lt;br /&gt;&amp;#160; int rewind ( int file)&lt;/p&gt;
						&lt;p&gt;Аргумент file является дескриптором файла.&lt;/p&gt;
						&lt;p&gt;Узнать текущее положение указателя можно при помощи функции ftell:&lt;br /&gt;&amp;#160; int ftell ( int file)&lt;/p&gt;
						&lt;p&gt;Установить указатель в любое место файла можно, используя функцию fseek:&lt;br /&gt;&amp;#160; int fseek ( int file, int offset [, int whence ])&lt;/p&gt;
						&lt;p&gt;Функция fseek устанавливает указатель файла на байт со смещением offset (от начала файла, от его конца или от текущей позиции, в зависимости от значения параметра whence). Аргумент file представляет собой дескриптор файла. Аргумент whence задает с какого места отсчитывается смещение offset и может принимать одно из следующих значений:&lt;br /&gt;SEEK_SET (отсчитывает позицию начала файла);&lt;br /&gt;SEEK_CUR (отсчитывает позицию относительно текущего положения указателя);&lt;br /&gt;SEEK_END (отсчитывает позицию относительно конца файла).&lt;/p&gt;
						&lt;p&gt;По умолчанию аргумент whence имеет значение SEEK_SET.&lt;/p&gt;
						&lt;p&gt;Узнать, находится ли указатель в конце файла, можно с помощью функции feof:&lt;br /&gt;&amp;#160; int feof ( int file)&lt;/p&gt;
						&lt;p&gt;Если указатель находится в конце файла, функция возвращает true, в ином случае возвращается false.&lt;/p&gt;
						&lt;p&gt;Функцию feof удобно использовать при чтении файла:&lt;br /&gt;&amp;lt;?&lt;br /&gt;&amp;#160; $file = fopen (&amp;quot;file.txt&amp;quot;,&amp;quot;r&amp;quot;);&lt;br /&gt;&amp;#160; if ($file)&lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; while(!feof($file))&lt;br /&gt;&amp;#160; &amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; $str = fgets($file);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; echo $str;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; echo (&amp;quot;&amp;lt;br&amp;gt;&amp;quot;);&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; fclose ( $file);&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; else&lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; echo(&amp;quot;Ошибка открытия файла&amp;quot;);&lt;br /&gt;&amp;#160; }&lt;br /&gt;?&amp;gt;&lt;/p&gt;
						&lt;p&gt;При помощи этой функции удобно также определять количество строк в файле:&lt;br /&gt;&amp;lt;?&lt;br /&gt;&amp;#160; $file = fopen (&amp;quot;file.txt&amp;quot;,&amp;quot;r&amp;quot;);&lt;br /&gt;&amp;#160; if ($file)&lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; $counter = 0;&lt;br /&gt;&amp;#160; &amp;#160; while(!feof($file))&lt;br /&gt;&amp;#160; &amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; $str = fgets ($file);&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; $counter++;&lt;br /&gt;&amp;#160; &amp;#160; }&lt;br /&gt;&amp;#160; &amp;#160; echo($counter);&lt;br /&gt;&amp;#160; &amp;#160; fclose ($file);&lt;br /&gt;&amp;#160; }&lt;br /&gt;&amp;#160; else&lt;br /&gt;&amp;#160; {&lt;br /&gt;&amp;#160; &amp;#160; echo(&amp;quot;Ошибка открытия файла&amp;quot;);&lt;br /&gt;&amp;#160; }&lt;br /&gt;?&amp;gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 15:08:01 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=14#p14</guid>
		</item>
		<item>
			<title>Атрибуты файлов</title>
			<link>http://php.fanbb.ru/viewtopic.php?pid=13#p13</link>
			<description>&lt;p&gt;Атрибуты файлов&lt;br /&gt;&lt;/p&gt;
						&lt;p&gt;Для получения дополнительной информации об атрибутах файла вы можете воспользоваться перечисленными ниже функциями.&lt;/p&gt;
						&lt;p&gt;Функция file_exists проверяет, существует ли файл и возвращает true, если файл существует и false в противном случае:&lt;br /&gt;&amp;#160; bool file_exists ( string filename)&lt;/p&gt;
						&lt;p&gt;Функция fileatime возвращает время последнего обращения к файлу:&lt;br /&gt;&amp;#160; int fileatime ( string filename)&lt;/p&gt;
						&lt;p&gt;Функция filemtime возвращает время последней модификации содержимого файла:&lt;br /&gt;&amp;#160; int filemtime ( string filename)&lt;/p&gt;
						&lt;p&gt;Функция file_size возвращает размер файла в байтах:&lt;br /&gt;&amp;#160; int file_size ( string filename)&lt;/p&gt;
						&lt;p&gt;Функция file_type возвращает тип файла:&lt;br /&gt;&amp;#160; string file_type ( string filename)&lt;/p&gt;
						&lt;p&gt;Строка, возвращаемая этой функцией, содержит один из следующих типов файла:&lt;br /&gt;char (специальное символьное устройство);&lt;br /&gt;dir (каталог);&lt;br /&gt;fifo (именованный канал);&lt;br /&gt;link (символическая ссылка);&lt;br /&gt;block (специальное блочное устройство);&lt;br /&gt;file (обычный файл);&lt;br /&gt;unknown (тип не установлен).&lt;/p&gt;
						&lt;p&gt;Поскольку использование функций, возвращающих характеристики файла, весьма ресурсоемко, во избежание потери производительности при вызовах таких функций, PHP кэширует информацию о файле. Очистить этот кэш можно с помощью функции clearstatcache:&lt;br /&gt;&amp;lt;?&lt;br /&gt;&amp;#160; clearstatcache();&lt;br /&gt;?&amp;gt;&lt;/p&gt;</description>
			<author>mybb@mybb.ru (BOPOH)</author>
			<pubDate>Wed, 15 Dec 2010 15:07:36 +0300</pubDate>
			<guid>http://php.fanbb.ru/viewtopic.php?pid=13#p13</guid>
		</item>
	</channel>
</rss>
