<?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>ctepeo.da</title>
	<atom:link href="http://ctepeo.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://ctepeo.net</link>
	<description>Open Your Mind</description>
	<lastBuildDate>Thu, 09 Apr 2009 15:51:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Проблема с fgetcsv(). Решение.</title>
		<link>http://ctepeo.net/2009/problema-s-fgetcsv-reshenie/</link>
		<comments>http://ctepeo.net/2009/problema-s-fgetcsv-reshenie/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 15:51:34 +0000</pubDate>
		<dc:creator>ctepeo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[fgetcsv]]></category>
		<category><![CDATA[php bug]]></category>

		<guid isPermaLink="false">http://ctepeo.net/?p=48</guid>
		<description><![CDATA[Сегодня у меня возникла проблема с fgetcsv(). При импорте csv-файла данная функция PHP некорректно обрабатывала одно из значений, а именно произовдила урезание значения. Сразу я обратил внимание на то, что урезались только те значения, в которых были русские символы, но не придал этому особого значения, так как они урезались не полностью. Спустя почти 2 часа [...]]]></description>
			<content:encoded><![CDATA[<p>Сегодня у меня возникла <strong>проблема с fgetcsv()</strong>. При импорте <strong>csv-файла</strong> данная <strong>функция PHP</strong> некорректно обрабатывала одно из значений, а именно произовдила <strong>урезание значения</strong>. Сразу я обратил внимание на то, что урезались только те значения, в которых были <strong>русские символы</strong>, но не придал этому особого значения, так как они урезались не полностью. Спустя почти 2 часа после возникновения проблемы было найдено решение.</p>
<p><span id="more-48"></span></p>
<p><strong>Решение проблемы</strong> с импортом csv-файлов с помощью <strong>fgetcsv()</strong> заключается в принудительном выставлении <a title="setlocale" href="http://by.php.net/setlocale" target="_blank">локали </a>в русскую непосредственно перед началом <strong>обработки *.csv</strong>:</p>
<p>setlocale(LC_ALL, &laquo;ru_RU&raquo;);</p>
<p>Соответсвенно, если вам необходимо произвести <strong>импорт csv</strong> с использованием каких-либо символов не английского алфавита, Вам нужно будет выставить соответсвующую локаль.</p>
<p><strong>Проблема </strong>была <a href="http://bugs.php.net/bug.php?id=12127" target="_blank">описана </a>в баг-треккере <strong>php</strong>, где, собственно, и найдено решение.</p>
<p>Надеюсь, эта статья сэкономит Вам время.</p>
]]></content:encoded>
			<wfw:commentRss>http://ctepeo.net/2009/problema-s-fgetcsv-reshenie/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Плавная смена картинок на jQuery</title>
		<link>http://ctepeo.net/2009/jquery-img-fadeout-fadein/</link>
		<comments>http://ctepeo.net/2009/jquery-img-fadeout-fadein/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 01:03:26 +0000</pubDate>
		<dc:creator>ctepeo</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Картинки]]></category>
		<category><![CDATA[fadeit]]></category>

		<guid isPermaLink="false">http://ctepeo.net/?p=40</guid>
		<description><![CDATA[Как изменить src тега img с помощью jQuery? Как сделать плавный переход между картинками на jQuery? Да, и вообще, как добавлять свои элементы в уже готовую структуру страницы?
На этот и, возможно, другие вопросы Вам поможет, я надеюсь, моя мини-галерея, основанная на fadeIn и fadeOut переходе.  Как всегда, всё бесплатно с пояснениями по функциям и переменным.
Итак, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Как изменить src</strong> тега <strong>img</strong> с помощью <strong>jQuery</strong>? <strong>Как сделать плавный переход</strong> между <strong>картинками</strong> на <strong>jQuery</strong>? Да, и вообще, как добавлять свои элементы в уже готовую структуру страницы?</p>
<p>На этот и, возможно, другие вопросы Вам поможет, я надеюсь, моя мини-галерея, основанная на <strong>fadeIn</strong> и <strong>fadeOut</strong> переходе.  Как всегда, всё<strong> бесплатно</strong> с пояснениями по функциям и переменным.</p>
<p><span id="more-40"></span>Итак, нам понадобится всего ничего: <strong>jQuery</strong> и мой мини-<strong>плагин FadeIt</strong>. <a href="http://code.google.com/p/jqueryjs/downloads/list" target="_blank">Скачать jQuery</a> можно с официального сайта, а плагин [Download not found] с этого блога <img src='http://ctepeo.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Теперь немного о переменных и работе скрипта.</p>
<p>В архиве мы имеем 4 <strong>картинки</strong> (2 нормальные и 2 уменьшенные их копии), 1 <strong>css файл</strong> (для красоты <img src='http://ctepeo.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ), 1 <strong>html файл</strong> и 1 <strong>javascript </strong>файл<strong> </strong>(jQuery.FadeIt), надеюсь, jQuery у Вас уже есть <img src='http://ctepeo.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  . В коде <strong>html </strong>и <strong>FadeIt </strong>есть комментарии для более доступного понятия &laquo;по шагам&raquo;, но, если рассматривать скрипт в общем, он в указанный блок добавляет 2 блока (увеличенная <strong>картинка </strong>и блок для превью) (функция <strong>fadeItInit</strong>()), далее с вызовом каждой <strong>fadeItAdd</strong> добавляет в <strong>превью картинки</strong>, после чего ждёт нажатия на картинки и <strong>плавно меняет src</strong> увеличенного изображения и указывает в блоке превью выбранную картинку.</p>
<p><span style="text-decoration: underline;">Функции:</span></p>
<p><strong>fadeIt</strong>() &#8211; создает в указанный блок 2 блока для дальнейших махинаций</p>
<p><strong>fadeItAdd</strong>(path, path2thumb, main) &#8211; <strong>Добавляет картинку</strong>. path &#8211; путь к увеличенной картинке, path2thumb &#8211; к уменьшенной, main &#8211; если 1, то эта картинка будет сразу в блоке для увеличения.</p>
<p>Далее идёт обработчик нажатия на превью. Хочется пояснить непосредственно что представляет из себя <strong>плавная смена картинок</strong>:</p>
<p>$(&laquo;#fadeItFullImg&raquo;).fadeOut(&laquo;fast&raquo;, function(){<br />
$(&laquo;#fadeItFullImg&raquo;).attr(&laquo;src&raquo;, xe);<br />
$(&laquo;#fadeItFullImg&raquo;).fadeIn(&laquo;slow&raquo;);<br />
});</p>
<p>Сперва увеличенная картинка быстро (fast) растворяется, после растворения (<strong>callback функция</strong>), происходит <strong>смена аттрибута картинки src</strong>, то есть непосредственно путь к картинке, после этого сразу начинается процесс медленного (slow) отображения картинки.</p>
<p>Думаю, это будет достаточно простой и удобный пример для тех, кто желает разобраться в <strong>смене картинок на jQuery</strong> и <strong>callback функциях</strong>. В любом случае Вы можете задать вопрос в комментах. Хорошего Вам дня!</p>
<p><strong>Скачать</strong> <strong>скрипт</strong> можно вот тут: [Download not found]</p>
<p><strong>Демо FadeIt</strong>: <a href="http://ctepeo.net/demo/jquery-fadeout-fadein.html" target="_blank">jquery fadeout fadein</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ctepeo.net/2009/jquery-img-fadeout-fadein/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Курсы валют ЦентрБанка РФ</title>
		<link>http://ctepeo.net/2009/php-script-kursy-valut/</link>
		<comments>http://ctepeo.net/2009/php-script-kursy-valut/#comments</comments>
		<pubDate>Sun, 15 Feb 2009 17:31:04 +0000</pubDate>
		<dc:creator>ctepeo</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[Курсы Валют]]></category>

		<guid isPermaLink="false">http://ctepeo.net/?p=38</guid>
		<description><![CDATA[Недавно возникла необходимость написать php скрипт, отображающий курсы валют Центрального банка Российской Федерации. Благо сайт НацБанка РФ выдаёт удобную XML с курсами, поэтому скрипт на самом деле является парсером с возможностью сравнения курсов со вчерашним днём.
Вы можете скачать скрипт бесплатно с этого сайта прямо сейчас, а если заинтересует, то и прочитать описание функций и переменных.

Переменные:
$updURL [...]]]></description>
			<content:encoded><![CDATA[<p>Недавно возникла необходимость написать <strong>php скрипт</strong>, отображающий <strong>курсы валют Центрального банка Российской Федерации</strong>. Благо сайт <a href="http://www.cbr.ru/">НацБанка РФ</a> выдаёт удобную <strong>XML</strong> с курсами, поэтому <strong>скрипт</strong> на самом деле является парсером<strong> с возможностью сравнения курсов</strong> со вчерашним днём.</p>
<p>Вы можете <a href="http://ctepeo.net/currency.rar">скачать скрипт бесплатно</a> с этого сайта прямо сейчас, а если заинтересует, то и прочитать описание функций и переменных.</p>
<p><span id="more-38"></span></p>
<p><strong>Переменные:</strong></p>
<p><span style="text-decoration: underline;">$updURL</span> &#8211; <strong>URL</strong> обновления, по умолчанию http://www.cbr.ru/scripts/XML_daily.asp &#8211; <strong>XML с курсами</strong>, установленными Центральным банком РФ на текущий день.</p>
<p><span style="text-decoration: underline;">$path</span> &#8211; путь на сервере, куда будут сохраняться временные файлы, с которыми в последующем и будут совершаться все операции. <span style="color: #ff0000;">Внимание! </span><span style="color: #ff0000;">Папка должна иметь права доступа для записи (<strong>CHMOD 777</strong>)</span></p>
<p><span style="text-decoration: underline;">$fPrefix</span> &#8211; префикс временных файлов. Создан просто для удобства нахождения наших файлов, если, например, Вы решите сохранять файлы в папку, где кроме наших временных файлов будут и другие.</p>
<p><span style="text-decoration: underline;">$keepHistory</span> &#8211; Установите true, если хотите, чтобы старые (позавчера и ранее) не удалялись автоматически. По умолчанию &#8211; false.</p>
<p><span style="text-decoration: underline;">$currArray</span> &#8211; Массив <strong>кодов валют</strong>, которые должны отображаться на сайте. Полный список валют есть на <a href="http://www.cbr.ru/currency_base/daily.aspx">сайте ЦБ РБ</a></p>
<p><span style="text-decoration: underline;">$changes</span> &#8211; Установите false, если Вы не хотите отображать сравнение со вчерашним днём. По умолчанию true</p>
<p><strong>Функции:</strong></p>
<p>Итак <span style="text-decoration: underline;">конструктор класса</span> выполняет задачу по определению необходимости обновления курсов и вызову функции <strong>отображения курсов на сайте</strong>.</p>
<p>Функция <span style="text-decoration: underline;">save2file</span> сохраняет полученные <strong>новые курсы валют</strong> в файл</p>
<p>Функция <span style="text-decoration: underline;">view</span> отвечает за <strong>вывод на сайт курсов валют</strong> из актуального файла.</p>
<p>Этот <strong>скрипт бесплатный</strong> и Вы можете использовать его у себя на сайте как Вам это необходимо, но мне будет приятно, если Вы оставите в комментариях запись о том, что скрипт нашёл своё применение не только в моём проекте <img src='http://ctepeo.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://ctepeo.net/2009/php-script-kursy-valut/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>jQuery и вращающиеся картинки</title>
		<link>http://ctepeo.net/2009/jquery-and-cycle-plugin/</link>
		<comments>http://ctepeo.net/2009/jquery-and-cycle-plugin/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 22:24:16 +0000</pubDate>
		<dc:creator>ctepeo</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Cycle]]></category>
		<category><![CDATA[Easing]]></category>
		<category><![CDATA[Sliding Images]]></category>

		<guid isPermaLink="false">http://ctepeo.net/?p=27</guid>
		<description><![CDATA[Вы, вероятно, успели заметить в самом верху этого блога блок с &#171;крутящимися картинками&#171;. Несмотря на то, что делается это достаточно быстро и просто с помощью jQuery plugin&#8216;а Cycle, для некоторых всё ещё загадочно и непонятно как сделать такую же фишечку у себя на сайте. Сейчас я постараюсь разложить всё по полочкам и показать, что ничего [...]]]></description>
			<content:encoded><![CDATA[<p>Вы, вероятно, успели заметить в самом верху этого блога блок с &laquo;<strong>крутящимися картинками</strong>&laquo;. Несмотря на то, что делается это достаточно быстро и просто с помощью<strong> jQuery</strong> <strong>plugin</strong>&#8216;а <strong>Cycle</strong>, для некоторых всё ещё загадочно и непонятно как сделать такую же фишечку у себя на сайте. Сейчас я постараюсь разложить всё по полочкам и показать, что ничего сложного в этом нету.<span id="more-27"></span>Для начала нам понадобятся:</p>
<p>1. <strong>jQuery<a href="http://code.google.com/p/jqueryjs/downloads/list" target="_blank"> скачать</a><br />
</strong></p>
<p>2. <strong>Плагин Cycle</strong> <strong><a href="http://malsup.com/jquery/cycle/download.html" target="_blank">скачать</a></strong></p>
<p>3. Опционально: <strong>Плагин Easing <a href="http://plugins.jquery.com/project/Easing" target="_blank">скачать</a></strong></p>
<p>Я начну с объяснения без Easing&#8217;a, но в конце статьи расскажу зачем он и как его использовать.</p>
<p>Подключаем<strong> jQuery</strong> и <strong>Cycle</strong>:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;script language=&quot;JavaScript&quot; src=&quot;./jquery.js&quot; &gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script language=&quot;JavaScript&quot; src=&quot;./cycle.js&quot; &gt;&lt;/script&gt;</div>
</li>
</ol>
</div>
<p>Далее на странице размещаем блок с id, например, равным &laquo;mytest&raquo; и помещаем в него 3 <strong>картинки, меняющиеся при нажатии на стрелку</strong>.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;div id=&quot;mytest&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;img src=&quot;test1.jpg&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;img src=&quot;test2.jpg&quot;&gt;
</div>
</li>
<li class="li2">
<div class="de2">&lt;img src=&quot;test3.jpg&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;/div&gt;</div>
</li>
</ol>
</div>
<p>Чуть ниже разместим то, что будем считать стрелками с id arr_left для кнопки, которая будет осуществлять <strong>прокрутку картинки</strong> назад и arr_right для кнопки с прокруткой вперёд.</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;img src=&quot;left_arrow.gif&quot; id=&quot;arr_left&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;img src=&quot;right_arrow.gif&quot; id=&quot;arr_right&quot;&gt;</div>
</li>
</ol>
</div>
<p>Теперь осталось оживить нашу страничку, подключив <strong>Cycle</strong>:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">$<span class="br0">&#40;</span>document<span class="br0">&#41;</span>.<span class="me1">ready</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;#mytest&#8217;</span><span class="br0">&#41;</span>.<span class="me1">cycle</span><span class="br0">&#40;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;fx: &nbsp; &nbsp; <span class="st0">&#8217;scrollHorz&#8217;</span>,</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp;prev: &nbsp; <span class="st0">&#8216;#arr_left&#8217;</span>,</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp;next: &nbsp; <span class="st0">&#8216;#arr_right&#8217;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>В итоге наш <strong>HTML код </strong> будет примерно таким:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;html&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;head&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script language=&quot;JavaScript&quot; src=&quot;./jquery.js&quot; &gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script language=&quot;JavaScript&quot; src=&quot;./cycle.js&quot; &gt;&lt;/script&gt;
</div>
</li>
<li class="li2">
<div class="de2">&lt;/head&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;body&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;div id=&quot;mytest&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;img src=&quot;test1.jpg&quot;&gt;
</div>
</li>
<li class="li2">
<div class="de2">&lt;img src=&quot;test2.jpg&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;img src=&quot;test3.jpg&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/div&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;img src=&quot;left_arrow.gif&quot; id=&quot;arr_left&quot;&gt;
</div>
</li>
<li class="li2">
<div class="de2">&lt;img src=&quot;right_arrow.gif&quot; id=&quot;arr_right&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;script language=&quot;JavaScript&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">$(document).ready(function(){
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; $(&#8216;#mytest&#8217;).cycle({
</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; fx: &nbsp; &nbsp; &#8217;scrollHorz&#8217;,
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; prev: &nbsp; &#8216;#arr_left&#8217;,
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; next: &nbsp; &#8216;#arr_right&#8217;
</div>
</li>
<li class="li1">
<div class="de1">});
</div>
</li>
<li class="li1">
<div class="de1">});
</div>
</li>
<li class="li2">
<div class="de2">&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;/body&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/html&gt;</div>
</li>
</ol>
</div>
<p>Теперь разберёмся <strong>как работает Cycle</strong> для <strong>jQuery</strong> и что он умеет.</p>
<p>В моём примере блок с id=&raquo;mytest&raquo; будет подвергнут обрабтки плагином Cycle , для перехода между картинками будет применён эффект горизонтального перехода (то есть картинки будут меняться так, как в данном блоге),  а запускать <strong>скольжение картинок</strong> будут блоки с id=&raquo;arr_left&raquo; для перехода к предыдущей картинке и id=&raquo;arr_right&raquo; к следующей. Этого уже достаточно для того, чтобы картинки начали свои переходы, но есть дополнительные параметры.</p>
<p>Начнём со<strong> списка параметров Cycle</strong>, я предоставлю краткий вариант, полный можно найти по <a href="http://malsup.com/jquery/cycle/options.html" target="_blank">этой ссылке</a>.<br />
<span style="padding-left: 30px;"><code class="mix">Эффект перехода между картинками:<br />
<span style="text-decoration: underline;">fx</span>: </code><code class="mix"><span class="com">fade, zoom<br />
fade: плавное исчезновение предыдущего слайда и появление нового<br />
zoom: смена картинки засчёт изменения размеров исходного и конечного изображений</span></code></span></p>
<p><code class="mix"><span style="text-decoration: underline;">speed</span>:<span class="numbers">1000</span></code><br />
время в миллисекундах за которое слайды меняются</p>
<p><code class="mix"><span style="text-decoration: underline;">startingSlide</span>: <span class="numbers">0</span></code><br />
номер слайда с которого должен начаться просмотр. Счёт начинается не с 1, а с 0<br />
Это <em>далеко не все парметры</em>, но зачастую их будет хватать для той или иной задачи.</p>
<p>Немного об <strong>Easing plugin для jQuery</strong>: данный плагин помогает избежать &laquo;унылых&raquo; переходов между слайдами, простыми .hide() и ещё в некоторых моментах, заменяя скорость перехода и динамичность с простой линейной на различные другие. Примеры можно посмотреть <a href="http://gsgd.co.uk/sandbox/jquery/easing/" target="_blank">вот тут</a>. Для того, чтобы подключить <strong>easing </strong>в наш скрипт достаточно добавить</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&lt;script language=&quot;JavaScript&quot; src=&quot;./jquery.easing.js&quot; &gt;&lt;/script&gt;</div>
</li>
</ol>
</div>
<p>в &lt;head&gt;, а в подключении Cycle вписать параметром easing: easeInOutBounce (например).</p>
<p>В ближайшее время я расскажу как сделать, чтобы не только картинки можно было заставлять красиво заменять друг другом, но и информационные блоки.</p>
]]></content:encoded>
			<wfw:commentRss>http://ctepeo.net/2009/jquery-and-cycle-plugin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Пример работы с mod_rewrite</title>
		<link>http://ctepeo.net/2009/primer-raboty-s-mod_rewrite/</link>
		<comments>http://ctepeo.net/2009/primer-raboty-s-mod_rewrite/#comments</comments>
		<pubDate>Sat, 03 Jan 2009 01:33:06 +0000</pubDate>
		<dc:creator>ctepeo</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Общие]]></category>
		<category><![CDATA[Friendly URLs]]></category>
		<category><![CDATA[mod_rewrite]]></category>

		<guid isPermaLink="false">http://ctepeo.net/?p=22</guid>
		<description><![CDATA[Многие веб-разработчики наслышаны про человекопонятные УРЛы (ЧПУ), но до сих пор теряются в том, как это реализуется.  Несложно найти в инете примеры mod_rewrite директив, но не всегда понятно до конца как это работает. В данном посте я постараюсь расставить всё по своим местам.
Итак, начнём с того, что реализуется это за счёт модуля Apache под названием [...]]]></description>
			<content:encoded><![CDATA[<p>Многие веб-разработчики наслышаны про <strong>человекопонятные УРЛы</strong> (<strong>ЧПУ</strong>), но до сих пор теряются в том, как это реализуется.  Несложно найти в инете <a href="http://bestblog.name/2008/11/modrewrite.html" target="_blank">примеры mod_rewrite</a> директив, но не всегда понятно до конца как это работает. В данном посте я постараюсь расставить всё по своим местам.</p>
<p><span id="more-22"></span>Итак, начнём с того, что реализуется это за счёт модуля <strong>Apache</strong> под названием <strong>mod_rewrite</strong>. Для подключения его необходимо создать в корневой папке сайта (например, http://ctepeo.net/) файл с расширением <strong>.htaccess</strong> (без имени), который в свою очередь и будет сообщать серверу, что для данной папки и вложенных папок правила определяются не общими настройками сервера, а директивами, указанными в нём.</p>
<p>Создали? Продолжим. Откроем данный файл в удобном для Вас текстовом редакторе и начнём добавлять директивы.</p>
<blockquote><p>RewriteEngine on<br />
RewriteBase /</p></blockquote>
<p>Первая строчка указывает серверу, что необходимо подключить модуль <strong>rewrite</strong> (он же <strong>mod_rewrite</strong>).  Вторая строчка указывает путь, относительно которого будут действовать правила переадресаций, то есть, если Вам необходимо реврайтить пути не из текущей директории, а например, из папки test, находящейся в корневой директории сайта, то <strong>RewriteBase</strong> будет /test/.</p>
<blockquote><p>RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
ErrorDocument 404 /index.php</p></blockquote>
<p>Эти строчки указывают нам на то, что при физическом наличии файла &#8211; открывать именно его, в противном случае вызывается <strong>ошибка 404</strong> &laquo;Документ не найден&raquo;. Именно в этом месте и начинается трюк. Вместо обычной статичной html странички мы указываем серверу, что нужно показать index.php.</p>
<p>В index.php легко узнать за какой страницей пришёл пользователь (какой УРЛ он вводил), делается это примерно так:</p>
<blockquote><p>$xurl = explode(&#8216;/&#8217;,$_SERVER['REQUEST_URI']);</p></blockquote>
<p>Эта строчка разбивает строку запроса (Например, http://ctepeo.net/test/myarticle/testme.html) на массив, получая элементы такие как: [0] &#8211; ctepeo.net, [1] &#8211; test, [2] &#8211; myarticle, [3] testme.html. Далее мы зная запрос можем вызывать необходимый нам модуль (Например, сделав запрос в базе по <strong>FakeURL</strong> (testme) и показав именно страницу testme, хотя физически файла /test/myarticle/testme.html не существует) или отобразить сообщение, что такого файла действительно нету.</p>
<p>Внимание! Для корректной <strong>индексации поисковиками</strong> в начале php-кода необходимо принудительно указывать <strong>header 200</strong> OK. Делается это так:</p>
<p>&lt;?php</p>
<p><strong><span style="color: #339966;">Header</span></strong>(&laquo;HTTP/1.0 200 OK&raquo;);</p>
<p>?&gt;</p>
<p>В некоторых случаях необходимо делать исключения, например, следующая строчка</p>
<blockquote><p>RewriteRule ^admin/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?action=admin [NC,L]</p></blockquote>
<p>перенаправит все запросы вида /admin/testme/test123/ на index.php с GET action=admin.</p>
<p><strong>Mod_rewrite</strong> так же может использоваться и для защиты файлов или директорий от внешних запросов.</p>
<blockquote><p>RewriteRule ^.config.inc.php$ &#8211; [F]</p></blockquote>
<p>Данная директива будет возвращать ошибку <strong>403 Forbidden</strong> при попытке вызывать файл config.inc.php</p>
<p>Подводя итог, хочется сказать, что <strong>mod_rewrite</strong> штука весьма несложная и в то же время очень мощная, поэтому стоит уделить ей час-два и навсегда избавится от таких насущных проблем, как <strong>дружественные УРЛ</strong> (<strong>friendly URLs</strong>).</p>
]]></content:encoded>
			<wfw:commentRss>http://ctepeo.net/2009/primer-raboty-s-mod_rewrite/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Давайте знакомиться</title>
		<link>http://ctepeo.net/2009/hello-world/</link>
		<comments>http://ctepeo.net/2009/hello-world/#comments</comments>
		<pubDate>Sat, 03 Jan 2009 00:12:49 +0000</pubDate>
		<dc:creator>ctepeo</dc:creator>
				<category><![CDATA[Общие]]></category>
		<category><![CDATA[ctepeo.net]]></category>

		<guid isPermaLink="false">http://ctepeo.net/?p=16</guid>
		<description><![CDATA[Меня зовут Егор, мне нравится делать веб-сайты, поэтому периодически у меня возникает необходимость решить ту или иную задачу, связанную с php, JavaScript, Photoshop, вёрсткой или на другую тему. В этом случае я обращаюсь к гуглу и нахожу там необходимые материалы.
Со временем я решил, что неплохо бы заиметь и свой блог, где я смогу помогать кому-то [...]]]></description>
			<content:encoded><![CDATA[<p>Меня зовут Егор, мне нравится делать <strong>веб-сайты</strong>, поэтому периодически у меня возникает необходимость решить ту или иную задачу, связанную с <strong>php</strong>, <strong>JavaScript</strong>, <strong>Photoshop</strong>, вёрсткой или на другую тему. В этом случае я обращаюсь к гуглу и нахожу там необходимые материалы.</p>
<p>Со временем я решил, что неплохо бы заиметь и свой блог, где я смогу помогать кому-то в решении некоторых задач, поэтому и появлися данный ресурс.<span id="more-16"></span>На сайте будут размещаться <strong>php скрипты</strong>, <strong>примеры javascript</strong>, всякого рода полезные советы и готовые решения. Они будут аккуратно разложены по категориям, так, чтобы найти интересующий Вас материал было максимально просто.</p>
<p>Несмотря на то, что мнение автора (то есть меня) может не совпадать с Вашим, я <em>всегда</em> буду рад услышать Ваше мнение. Задавайте вопросы &#8211; делитесь своими решениями, помогайте другим людям. Open Your Mind!</p>
]]></content:encoded>
			<wfw:commentRss>http://ctepeo.net/2009/hello-world/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
