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

<channel>
	<title>Блог Ромки &#187; Программируем</title>
	<atom:link href="http://romka.name/categories/programming/feed" rel="self" type="application/rss+xml" />
	<link>http://romka.name</link>
	<description></description>
	<lastBuildDate>Sat, 20 Nov 2010 15:47:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Считаем секунды или ну негрузите меня.</title>
		<link>http://romka.name/2009/12/schitaem-sekundy-ili-nu-negruzite-menya.html</link>
		<comments>http://romka.name/2009/12/schitaem-sekundy-ili-nu-negruzite-menya.html#comments</comments>
		<pubDate>Tue, 29 Dec 2009 08:43:57 +0000</pubDate>
		<dc:creator>Ромка</dc:creator>
				<category><![CDATA[Программируем]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rss reader]]></category>
		<category><![CDATA[SimpleXML]]></category>

		<guid isPermaLink="false">http://romka.name/?p=94</guid>
		<description><![CDATA[
			
				
			
		
Итак, раз уж я начал постить про парсеры и появляются варианты для одной и той же задачи - парсинга RSS потока, то задаётся вопрос, какой из них лучше? Проведём тест всех разновидностей, задачей будет каждым вариантом спарсить RSS поток этого блога и спарсить параметры title и link каждого поста. Будет 3 экземпляра парсеров для одной [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fromka.name%2F2009%2F12%2Fschitaem-sekundy-ili-nu-negruzite-menya.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fromka.name%2F2009%2F12%2Fschitaem-sekundy-ili-nu-negruzite-menya.html&amp;source=romkaby&amp;style=normal&amp;service=is.gd&amp;hashtags=php,rss+reader,SimpleXML" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;"><img src="http://romka.name/wp-content/uploads/2009/12/Считаем-секунды-или-ну-не-грузите-меня.jpg" alt="" title="Считаем секунды или ну не грузите меня" width="300" height="200" class="alignleft size-full wp-image-111" /><img border='0' width='1' height='1' alt='Блогун - монетизируем блоги' src='http://www.Blagun.ru/it.000000.073508.i.gif'/>Итак, раз уж я начал постить про парсеры и появляются варианты для одной и той же задачи - парсинга RSS потока, то задаётся вопрос, какой из них лучше? Проведём тест всех разновидностей, задачей будет каждым вариантом спарсить <a href="http://feeds.feedburner.com/romka">RSS поток этого блога</a> и спарсить параметры title и link каждого поста. Будет 3 экземпляра парсеров для одной и той же задачи<span id="more-94"></span>, а именно:</p>
<ul style="text-align: justify;">
<li>Парсер, написанный на регулярках по статье <a href="http://romka.name/2009/12/pishem-rss-reader.html">Пишем RSS Reader</a>;</li>
<li>Парсер, написанный по статье <a href="http://romka.name/2009/12/parser-svoimi-rukami-teoriya.html">Парсер своими руками. Теория</a>;</li>
<li>И парсер, написанный на SimpleXML.</li>
</ul>
<p style="text-align: justify;">Итак, начну с исходного кода каждого из них:</p>
<p style="text-align: justify;">Парсер, написанный на регулярках по статье <a href="http://romka.name/2009/12/pishem-rss-reader.html">Пишем RSS Reader</a>:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$url</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;http://feeds.feedburner.com/romka?format=xml&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$xml</span> <span style="color: #339933;">=</span> <span style="color: #990000;">iconv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'utf-8'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'windows-1251'</span><span style="color: #339933;">,</span><span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$n</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'!&lt;item&gt;.*&lt;title&gt;(.*)&lt;/title&gt;.*&lt;link&gt;(.*)&lt;/link&gt;.*&lt;/item&gt;!Uis'</span><span style="color: #339933;">,</span><span style="color: #000088;">$xml</span><span style="color: #339933;">,</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$n</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><span style="color: #000088;">$a</span><span style="color: #339933;">&lt;</span><span style="color: #000088;">$n</span><span style="color: #339933;">;</span><span style="color: #000088;">$a</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;a href='&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;'&gt;&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;/a&gt;&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p style="text-align: justify;">Парсер, написанный по статье <a href="http://romka.name/2009/12/parser-svoimi-rukami-teoriya.html">Парсер своими руками. Теория</a>:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://feeds.feedburner.com/romka?format=xml&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$page</span> <span style="color: #339933;">=</span> <span style="color: #990000;">iconv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'utf-8'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'windows-1251'</span><span style="color: #339933;">,</span><span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$page</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;'&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;\'&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$page</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$page</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;*&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;555&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$page</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$page</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&lt;&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;?xml &quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;&lt;&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;?php $&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;n=0; /&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;*&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$page</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$page</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&lt;/rss&gt;&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;*&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;/ ?&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&gt;&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$page</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$page</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&lt;item&gt;&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;*&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;/ $&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;n++; /&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;*&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$page</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&lt;title&gt;&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;*&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;/ $&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;title[$&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;n]='&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$page</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&lt;/title&gt;&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;'; /&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;*&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$page</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&lt;link&gt;&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;*&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;/ $&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;link[$&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;n]='&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$page</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&lt;/link&gt;&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;'; /&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;*&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$f</span><span style="color: #339933;">=</span><span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;file.php&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;w&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">fwrite</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$f</span><span style="color: #339933;">,</span><span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$f</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">include</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'file.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span><span style="color: #000088;">$a</span><span style="color: #339933;">&lt;=</span><span style="color: #000088;">$n</span><span style="color: #339933;">;</span><span style="color: #000088;">$a</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;a href='&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$link</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;'&gt;&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$title</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;/a&gt;&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p style="text-align: justify;">Парсер, написанный на SimpleXML:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$rss</span> <span style="color: #339933;">=</span>  <span style="color: #990000;">simplexml_load_file</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'http://feeds.feedburner.com/romka?format=xml'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$rss</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">channel</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">item</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$item</span><span style="color: #009900;">&#41;</span> 
	<span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;a href='&quot;</span><span style="color: #339933;">.</span> <span style="color: #000088;">$item</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">link</span><span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;'&gt;&quot;</span><span style="color: #339933;">.</span> <span style="color: #000088;">$item</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">title</span><span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;&lt;/a&gt;&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p style="text-align: justify;">Все они загружают RSS поток и выводят все записи в виде названия пост со ссылкой. Теперь будем засекать время обработки кода. Делать это будем при помощи такого кода:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$mtime</span><span style="color: #339933;">=</span><span style="color: #990000;">microtime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mtime</span><span style="color: #339933;">=</span><span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$mtime</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$tstart</span><span style="color: #339933;">=</span><span style="color: #000088;">$mtime</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$mtime</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">////  Код парсера</span>
&nbsp;
<span style="color: #000088;">$mtime</span><span style="color: #339933;">=</span><span style="color: #990000;">microtime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$mtime</span><span style="color: #339933;">=</span><span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$mtime</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$tend</span><span style="color: #339933;">=</span><span style="color: #000088;">$mtime</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> <span style="color: #000088;">$mtime</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$totaltime</span><span style="color: #339933;">=</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tend</span> <span style="color: #339933;">-</span> <span style="color: #000088;">$tstart</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">printf</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #009933; font-weight: bold;">%f</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$totaltime</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Для эксперемента использую хостинг <a title="Хостинг BH" href="https://best-hoster.ru/order/host.php?uid=23249&amp;bid=1" target="_blank">BH</a>. Запускал скрипты примерно в одно время по 25 раз для каждого для достоверности данных. Вот таблица результатов:</p>
<p><center><img src="http://romka.name/wp-content/uploads/2009/12/Засекаем-время-или-негрузите-меня.jpg" alt="" title="Засекаем время или негрузите меня" width="400" height="624" class="aligncenter size-full wp-image-102" align="center" style="align:center;" /></center></p>
<p style="text-align: justify;">Как видно, больших отличий по времени нету, но есть большие отличаи по объёмности кода. Ясно видно, что использовать SimpleXML намного удобнее, чем что либо другое. Тем более, что парсеры №1 и №2 чувствительны к смене структуры, а в парсере №2 должен присутствовать файл file.php с CHMOD 666, что так же неудобно.</p>
<p><strong>Вердикт: Для написания скрипта, использующего каким-либо образом RSS лучше всего применять SimpleXML!</strong></p>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fromka.name%2F2009%2F12%2Fschitaem-sekundy-ili-nu-negruzite-menya.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fromka.name%2F2009%2F12%2Fschitaem-sekundy-ili-nu-negruzite-menya.html&amp;source=romkaby&amp;style=normal&amp;service=is.gd&amp;hashtags=php,rss+reader,SimpleXML" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://romka.name/2009/12/schitaem-sekundy-ili-nu-negruzite-menya.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Пишем RSS Reader</title>
		<link>http://romka.name/2009/12/pishem-rss-reader.html</link>
		<comments>http://romka.name/2009/12/pishem-rss-reader.html#comments</comments>
		<pubDate>Sat, 26 Dec 2009 09:01:20 +0000</pubDate>
		<dc:creator>Ромка</dc:creator>
				<category><![CDATA[Программируем]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[регулярные выражения]]></category>

		<guid isPermaLink="false">http://romka.name/?p=67</guid>
		<description><![CDATA[
			
				
			
		

      В данной статье будет описано написание RSS читалки с применение регулярных выражений. За основу возьмём RSS канал этого блога в FeedBurner'е. Будем читать заголовок, ссылку и текст поста и выводить на экран уже ввиде html кода.
      Перед прочтением подпишитесь на RSS, особенно если не знаете что такое регулярные выражения [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fromka.name%2F2009%2F12%2Fpishem-rss-reader.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fromka.name%2F2009%2F12%2Fpishem-rss-reader.html&amp;source=romkaby&amp;style=normal&amp;service=is.gd&amp;hashtags=php,rss,%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5+%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;"><img class="alignleft size-full wp-image-68" title="Пишем RSS Reader" src="http://romka.name/wp-content/uploads/2009/12/Пишем-RSS-Reader.jpg" alt="" width="280" height="128" /></p>
<p style="text-align: justify;">      В данной статье будет описано написание RSS читалки с применение регулярных выражений. За основу возьмём RSS канал этого блога в FeedBurner'е. Будем читать заголовок, ссылку и текст поста и выводить на экран уже ввиде html кода.<span id="more-67"></span><br />
      Перед прочтением <strong><a href="http://feeds.feedburner.com/romka">подпишитесь на RSS</a></strong>, особенно если не знаете что такое регулярные выражения (:<br />
      Открываем xml-код потока и видим:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml-stylesheet</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text/xsl&quot;</span> <span style="color: #000066;">media</span>=<span style="color: #ff0000;">&quot;screen&quot;</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&quot;/~d/styles/rss2full.xsl&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span><span style="color: #000000; font-weight: bold;">&lt;?xml-stylesheet</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text/css&quot;</span> <span style="color: #000066;">media</span>=<span style="color: #ff0000;">&quot;screen&quot;</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&quot;http://feeds.feedburner.com/~d/styles/itemcontent.css&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span><span style="color: #000000; font-weight: bold;">&lt;rss</span> <span style="color: #000066;">xmlns:content</span>=<span style="color: #ff0000;">&quot;http://purl.org/rss/1.0/modules/content/&quot;</span> <span style="color: #000066;">xmlns:wfw</span>=<span style="color: #ff0000;">&quot;http://wellformedweb.org/CommentAPI/&quot;</span> <span style="color: #000066;">xmlns:dc</span>=<span style="color: #ff0000;">&quot;http://purl.org/dc/elements/1.1/&quot;</span> <span style="color: #000066;">xmlns:atom</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/2005/Atom&quot;</span> <span style="color: #000066;">xmlns:sy</span>=<span style="color: #ff0000;">&quot;http://purl.org/rss/1.0/modules/syndication/&quot;</span> <span style="color: #000066;">xmlns:slash</span>=<span style="color: #ff0000;">&quot;http://purl.org/rss/1.0/modules/slash/&quot;</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;2.0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;channel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Блог Ромки<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://romka.name<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;description</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;lastBuildDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Fri, 25 Dec 2009 12:54:45 +0000<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/lastBuildDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;generator<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://wordpress.org/?v=2.9<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/generator<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;language<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>en<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/language<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;sy:updatePeriod<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>hourly<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/sy:updatePeriod<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;sy:updateFrequency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/sy:updateFrequency<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;atom10:link</span> <span style="color: #000066;">xmlns:atom10</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/2005/Atom&quot;</span> <span style="color: #000066;">rel</span>=<span style="color: #ff0000;">&quot;self&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;application/rss+xml&quot;</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&quot;http://feeds.feedburner.com/romka&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span><span style="color: #000000; font-weight: bold;">&lt;feedburner:emailServiceId</span> <span style="color: #000066;">xmlns:feedburner</span>=<span style="color: #ff0000;">&quot;http://rssnamespace.org/feedburner/ext/1.0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>romka<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/feedburner:emailServiceId<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;feedburner:feedburnerHostname</span> <span style="color: #000066;">xmlns:feedburner</span>=<span style="color: #ff0000;">&quot;http://rssnamespace.org/feedburner/ext/1.0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>http://feedburner.google.com<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/feedburner:feedburnerHostname<span style="color: #000000; font-weight: bold;">&gt;</span></span><span style="color: #000000; font-weight: bold;">&lt;atom10:link</span> <span style="color: #000066;">xmlns:atom10</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/2005/Atom&quot;</span> <span style="color: #000066;">rel</span>=<span style="color: #ff0000;">&quot;hub&quot;</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&quot;http://pubsubhubbub.appspot.com&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Парсер своими руками. Теория<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://romka.name/2009/12/parser-svoimi-rukami-teoriya.html<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;comments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://romka.name/2009/12/parser-svoimi-rukami-teoriya.html#comments<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/comments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Fri, 25 Dec 2009 12:18:08 +0000<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dc:creator<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Ромка<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dc:creator<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[Программируем]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[php]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[парсер]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[программирование]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;guid</span> <span style="color: #000066;">isPermaLink</span>=<span style="color: #ff0000;">&quot;false&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>http://romka.name/?p=54<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/guid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>      Собственно, что такое парсер? Это скрипт/программа/куча текста, которая запрашивает страницу на другом сайте и берёт с него то, что нужно вебмастеру.
      Я ничего не читал по написанию парсеров и грабберов, додумался до этого способа сам, так что не критикуйте, если есть более лёгкий способ.
      Принцип моего способа довольно прост.
      Сначала получаем контент с нужного [...]<span style="color: #ddbb00;">&amp;lt;</span>img src=&quot;http://feeds.feedburner.com/~r/romka/~4/-MP8YyQoYWQ&quot; height=&quot;1&quot; width=&quot;1&quot;/<span style="color: #ddbb00;">&amp;gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;wfw:commentRss<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://romka.name/2009/12/parser-svoimi-rukami-teoriya.html/feed<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/wfw:commentRss<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;slash:comments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>2<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/slash:comments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Апдейт тИЦ 24.12.09<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://romka.name/2009/12/apdejt-tic-24-12-09.html<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;comments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://romka.name/2009/12/apdejt-tic-24-12-09.html#comments<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/comments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Thu, 24 Dec 2009 08:56:54 +0000<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dc:creator<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Ромка<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dc:creator<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[Поисковые системы]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[Апдейт]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[тИЦ]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[Яндекс]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;guid</span> <span style="color: #000066;">isPermaLink</span>=<span style="color: #ff0000;">&quot;false&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>http://romka.name/?p=51<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/guid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>     Сабж, сегодня апдейт тицки у яндекса. Сам давно закинул это дело (хотя для блога надо постараться), но не написать про ап не могу (:
     Собственно, у кого какие успехи?<span style="color: #ddbb00;">&amp;lt;</span>img src=&quot;http://feeds.feedburner.com/~r/romka/~4/f_13tN1bxxs&quot; height=&quot;1&quot; width=&quot;1&quot;/<span style="color: #ddbb00;">&amp;gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;wfw:commentRss<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://romka.name/2009/12/apdejt-tic-24-12-09.html/feed<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/wfw:commentRss<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;slash:comments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>5<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/slash:comments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>А чевой-то вы там хотите?<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://romka.name/2009/12/a-chevoj-to-vy-tam-xotite.html<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;comments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://romka.name/2009/12/a-chevoj-to-vy-tam-xotite.html#comments<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/comments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Wed, 23 Dec 2009 18:34:55 +0000<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dc:creator<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Ромка<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dc:creator<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[Новости блога]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[блог]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;guid</span> <span style="color: #000066;">isPermaLink</span>=<span style="color: #ff0000;">&quot;false&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>http://romka.name/?p=45<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/guid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Сегодня на блоге появилась новая страница желаний... Она предназначена для увеличения актуальности моих статей. Ведь не всегда угадаешь, чего хотят читатели, но теперь вы сами можете потребовать подсказать, что вы хотите. Не оставляйте без внимания эту ветку блога, возможно, благодаря ней вы станете моим постоянным читателем? (:<span style="color: #ddbb00;">&amp;lt;</span>img src=&quot;http://feeds.feedburner.com/~r/romka/~4/6gorvJnY-jw&quot; height=&quot;1&quot; width=&quot;1&quot;/<span style="color: #ddbb00;">&amp;gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;wfw:commentRss<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://romka.name/2009/12/a-chevoj-to-vy-tam-xotite.html/feed<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/wfw:commentRss<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;slash:comments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>0<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/slash:comments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Загрузка файлов в стиле AJAX<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://romka.name/2009/12/zagruzka-fajlov-v-stile-ajax.html<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;comments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://romka.name/2009/12/zagruzka-fajlov-v-stile-ajax.html#comments<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/comments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Tue, 22 Dec 2009 13:07:48 +0000<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dc:creator<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Ромка<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dc:creator<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[Программируем]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[html]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[javascript]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[php]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[загрузка файлов]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[программирование]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;guid</span> <span style="color: #000066;">isPermaLink</span>=<span style="color: #ff0000;">&quot;false&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>http://romka.name/?p=18<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/guid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>      Собственно, первая статья на тему сайтостроения, не судите строго (:
      Значит в данный момент технология AJAX стала довольно популярной, а ведь действительно, очень удобно отправлять и получать данные без обновления страницы, экономит траффик, да и вообще это стильно. Аналогично есть и jquery, с этой системой вообще не знаком, но вроде принцип такой же - [...]<span style="color: #ddbb00;">&amp;lt;</span>img src=&quot;http://feeds.feedburner.com/~r/romka/~4/iKdwatV9L_4&quot; height=&quot;1&quot; width=&quot;1&quot;/<span style="color: #ddbb00;">&amp;gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;wfw:commentRss<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://romka.name/2009/12/zagruzka-fajlov-v-stile-ajax.html/feed<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/wfw:commentRss<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;slash:comments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>4<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/slash:comments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Первый день блога<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://romka.name/2009/12/pervyj-den-bloga.html<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;comments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://romka.name/2009/12/pervyj-den-bloga.html#comments<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/comments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Sun, 20 Dec 2009 15:22:39 +0000<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;dc:creator<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Ромка<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/dc:creator<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
				<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[Новости блога]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[Я]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[блог]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[первый день]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/category<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;guid</span> <span style="color: #000066;">isPermaLink</span>=<span style="color: #ff0000;">&quot;false&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>http://romka.name/?p=4<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/guid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Такс...
Во-первых, здрас... Да вытирайте же ноги, ёж твою в корень гости дорогие!
Во-вторых, это мой уже второй блог и я надеюсь... Да куда ты тварь лохматую собаку тянешь к монитору? И так пёрднуть дыхнуть негде...
В-третьих, почему я заново создал новый блог? Да потому что мои друзья задолбали капать на мозги подсказали сделать его, мол мне есть о [...]<span style="color: #ddbb00;">&amp;lt;</span>img src=&quot;http://feeds.feedburner.com/~r/romka/~4/xbuebJ-zQdI&quot; height=&quot;1&quot; width=&quot;1&quot;/<span style="color: #ddbb00;">&amp;gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;wfw:commentRss<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://romka.name/2009/12/pervyj-den-bloga.html/feed<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/wfw:commentRss<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;slash:comments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>3<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/slash:comments<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/channel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/rss<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>      Это и есть код RSS потока. Не буду вдаваться в подробности, объясню только что на нужно. Каждый пост оформляется и отделяется от остальных таким образом:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> содержание поста <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>      В посте нам надо выделить заголовок (тэг title), ссылку (тэг link) и краткое описание (тэг description). Т.е. нам надо выделить блоки такого строения:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> ... <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>TITLE<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> ... <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://LINK<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> ... <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>DESCRIPTION<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span> ... <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>      Это один элемент rss ленты.<br />
      Регулярное выражение, которое будет замечать и вытаскивать нужные элементы:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$n</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'!&lt;item&gt;.*&lt;title&gt;(.*)&lt;/title&gt;.*&lt;link&gt;(.*)&lt;/link&gt;.*&lt;description&gt;(.*)&amp;lt;img\ssrc.*&lt;/description&gt;!Uis'</span><span style="color: #339933;">,</span><span style="color: #000088;">$xml</span><span style="color: #339933;">,</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>      ! - левый ограничитель.<br />
      .* - любой текст/код.<br />
      ( ) - в скобки берётся участок кода, который нужно вытащить.<br />
      (.*) - смотря выше понимаем, что это любой текст, который надо запомнить. Для нам это тексты внутри тэгов title, link, description.<br />
      &amp;lt;img\ssrc - здесь &amp;lt;img это код, который присутствует в выдаче feedburner'а, далее идёт пробел, он обозначается как \s и src - это тоже код в странице.<br />
      !Uis - правый ограничитель и модификаторы. Модификатор U делает регулярное выражение "жадным", т.е. заставляет искать минимальное соответствие регулярному выражению, s - заставляет точку смотреть на \n как на обычный символ, i - это нечувствительность к регистру а-ля вам по барабану маленькие там буквы или большие (:<br />
      $xml - код выдачи, т.е. входящие данные.<br />
      $result - результирующий файл. Идёт как массив.<br />
      Переменной $n присваивается количество циклов замены, которые произвела функция. В нашем случае оно означает сколько функция нашла участков код вида &lt;item&gt; ... &lt;/item&gt;, а это количество постов.<br />
      Теперь разберём результирующий массив $result.<br />
      Так как за цикл у нас запоминается три элемента (заголовок, ссылка и описание), то первый индекс определяет что выводить:<br />
      $result[1] - Заголовок<br />
      $result[2] - Ссылка<br />
      $result[3] - Описание<br />
     А из-за того, что элементов у нас несколько, то массив у нас имеет ещё один индекс - номер почта. Он начинается с нуля. Итого у нас массив вида:<br />
$result[что_выводить][номер_поста_начиная_с_нуля]<br />
     Например:<br />
     $result[1,1] - Заголовок второго элемента<br />
     $result[3,4] - Описание пятого элемента<br />
     Собственно и всё. Полный код RRS Reader'а:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$url</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;http://feeds.feedburner.com/romka?format=xml&quot;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$xml</span> <span style="color: #339933;">=</span> <span style="color: #990000;">iconv</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'utf-8'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'windows-1251'</span><span style="color: #339933;">,</span><span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$url</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$n</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'!&lt;item&gt;.*&lt;title&gt;(.*)&lt;/title&gt;.*&lt;link&gt;(.*)&lt;/link&gt;.*&lt;description&gt;(.*)&amp;lt;img\ssrc.*&lt;/description&gt;!Uis'</span><span style="color: #339933;">,</span><span style="color: #000088;">$xml</span><span style="color: #339933;">,</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$n</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$a</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><span style="color: #000088;">$a</span><span style="color: #339933;">&lt;</span><span style="color: #000088;">$n</span><span style="color: #339933;">;</span><span style="color: #000088;">$a</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;a href='&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;'&gt;&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;/a&gt;&lt;br /&gt;&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$a</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;br /&gt;----------&lt;br /&gt;&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p><a href="http://romka.name/script/index.php?p=2">Пример скрипта</a> - <a href="http://feeds.feedburner.com/romka" target="_blank"><strong>Подпишись на RSS</strong></a>
</p>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fromka.name%2F2009%2F12%2Fpishem-rss-reader.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fromka.name%2F2009%2F12%2Fpishem-rss-reader.html&amp;source=romkaby&amp;style=normal&amp;service=is.gd&amp;hashtags=php,rss,%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5+%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://romka.name/2009/12/pishem-rss-reader.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Парсер своими руками. Теория</title>
		<link>http://romka.name/2009/12/parser-svoimi-rukami-teoriya.html</link>
		<comments>http://romka.name/2009/12/parser-svoimi-rukami-teoriya.html#comments</comments>
		<pubDate>Fri, 25 Dec 2009 12:18:08 +0000</pubDate>
		<dc:creator>Ромка</dc:creator>
				<category><![CDATA[Программируем]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[парсер]]></category>
		<category><![CDATA[программирование]]></category>

		<guid isPermaLink="false">http://romka.name/?p=54</guid>
		<description><![CDATA[
			
				
			
		
      Собственно, что такое парсер? Это скрипт/программа/куча текста, которая запрашивает страницу на другом сайте и берёт с него то, что нужно вебмастеру.
      Я ничего не читал по написанию парсеров и грабберов, додумался до этого способа сам, так что не критикуйте, если есть более лёгкий способ.
      Принцип моего способа довольно прост.
      Сначала получаем контент с нужного [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fromka.name%2F2009%2F12%2Fparser-svoimi-rukami-teoriya.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fromka.name%2F2009%2F12%2Fparser-svoimi-rukami-teoriya.html&amp;source=romkaby&amp;style=normal&amp;service=is.gd&amp;hashtags=php,%D0%BF%D0%B0%D1%80%D1%81%D0%B5%D1%80,%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;"><img class="alignleft size-full wp-image-58" title="Парсер своими руками. Теория" src="http://romka.name/wp-content/uploads/2009/12/2_Парсер-своими-руками.-Теория.jpg" alt="" width="280" height="150" />      Собственно, что такое парсер? Это скрипт/программа/куча текста, которая запрашивает страницу на другом сайте и берёт с него то, что нужно вебмастеру.</p>
<p style="text-align: justify;">      Я ничего не читал по написанию парсеров и грабберов, додумался до этого способа сам, так что не критикуйте, если есть более лёгкий способ.<span id="more-54"></span><br />
      Принцип моего способа довольно прост.</p>
<p style="text-align: justify;">      Сначала получаем контент с нужного урл. Для этого я использую функцию:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">$выход <span style="color: #339933;">=</span> <span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'урл'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>      Результат её выполнения - полный код необходимой страницы. Дальше - собственно и идёт мой принцип, а заключается он в том, что весь текст данной страницы помещается в php код и сразу коментируется. Поэтому, проанализировав выдачу кода, берём комбинации самого первого и самого последнего символов/тэгов (чаще всего это тэги html) и заменяем их на "начало php кода и начало коментрования" в начале и на "конец коментирования и конец php кода" в конце. Заменяется всё через такую функцию:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">$выход <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Что заменить'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'На что заменить'</span><span style="color: #339933;">,</span> $вход<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>      Пример кода для парсера:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">$выход <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&lt;html&gt;'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'&lt;'</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'?'</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'php '</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/*'</span><span style="color: #339933;">,</span> $вход<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
$выход <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&lt;/html&gt;'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">' */ ?'</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&gt;;'</span><span style="color: #339933;">,</span> $вход<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>      $выход - выходящий код, первый параметр - что заменять, второй - на что заменять, третий ($вход) - входящий код<br />
      Обязательно надо разбить строку "<?php" и "?>" на несколько частей, так как интерпретатор может подумать, что это тэги, а не строки.<br />
      Так как в качестве коментирования мы использую "/* */", то сначала уберём все знаки "*". Для этого используем код:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">$выход <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'*'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'любой_символ'</span><span style="color: #339933;">,</span> $вход<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>      Итак, сейчас у нас есть полный код страницы, представленный как один большой комментарий в php коде. Дальше, если нам надо выделить какие-то строки разного строения, например все параметры товара в интернет-магазине, то анализируем код и пытаемся найти что-то, что их отличает друг от друга, причём отличия должны быть найдены как в начале каждого параметра товара, так и в конце. И при помощи замены необходимые части, которые нам нужны для вывода, должны быть присвоены каким-либо переменным. Например, если код будет таким:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;p&gt;&lt;b&gt;Название:&lt;/b&gt; Название_товара&lt;br /&gt;
&lt;b&gt;Размер:&lt;/b&gt; Размер_товара&lt;br /&gt;
&lt;b&gt;Вес:&lt;/b&gt; Вес_товара&lt;/p&gt;</pre></td></tr></table></div>

<p>      После всех замен должно получиться что-то подобное на такое:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>p<span style="color: #339933;">&gt;</span> <span style="color: #339933;">*/</span> <span style="color: #000088;">$name</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'Название_товара'</span><span style="color: #339933;">;</span> <span style="color: #000088;">$razmer</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'Размер_товара'</span><span style="color: #339933;">;</span> <span style="color: #000088;">$ves</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'Вес_товара'</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">/*</span></pre></td></tr></table></div>

<p>      Тут их отличает текст, который стоит до необходимого нам текста. Убираем переносы строк при помощи:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">$выход <span style="color: #339933;">=</span> <span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span>$вход<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>       Получим:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;p&gt;&lt;b&gt;Название:&lt;/b&gt; Название_товара&lt;br /&gt;&lt;b&gt;Размер:&lt;/b&gt; Размер_товара&lt;br /&gt;&lt;b&gt; Вес:&lt;/b&gt;Вес_товара&lt;/p&gt;</pre></td></tr></table></div>

<p>      Можно ещё пробелы убрать:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">$выход <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">' '</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> $вход<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>      Ну и остаётся заменить "&lt;b&gt;Название:&lt;/b&gt;" на "*/ $name='", "&lt;br /&gt;&lt;b&gt;Размер:&lt;/b&gt;" на "'; $razmer='" и т.д. Делается это кодом:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">$выход <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&lt;b&gt;Название:&lt;/b&gt;&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;*/ $&quot;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;name='&quot;</span><span style="color: #339933;">,</span> $вход<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>      И так далее, замечу, что надо разделять на части переменные, которые должны получиться в коде.<br />
Дальше мы записываем изменённый код страницы в файл с расширение .php и просто подгружаем его в скрипт. В результате по переменным, которым мы присвоили наши характеристики ($name, $razmer и $ves) будет доступно их значения.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$f</span><span style="color: #339933;">=</span><span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;file.php&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;w&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">fwrite</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$f</span><span style="color: #339933;">,</span>$переменная_с_кодом<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">fclose</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$f</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">include</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'file.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>      Первая строчка открывает файл для записи. Вторая - записывает в файл наш изменённый код страницы. Третья - закрывает файл. И, наконец, четвёртая подгружает данный файл уже как php файл в наш скрипт. Дальше уже делаем с ними что угодно, например, выведем их на экран:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">echo</span> <span style="color: #000088;">$name</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; - &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$razmer</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot; - &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$ves</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>      На экране будет</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">Название_товара - Размер_товара - Вес_товара</pre></td></tr></table></div>

<p>     Кто не совсем понял, что произошло, ещё раз чисто текстом. Сначала получаем код необходимой страницы, далее представляем его как php код, коментируем все строки. Потом по частям находим нужные нам куски кода и раскоментируем одновременно присваивая к каким-либо переменным, записываем наш php код в файл и сразу загружаем в скрипт в результате чего все переменные, которым мы присваивали нужные куски кода страницы, доступны из скрипта.<br />
      Вот и всё, с теорией покончено, а попрактикуемся в следующей статье. Будем писать реальный парсер (:</p>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fromka.name%2F2009%2F12%2Fparser-svoimi-rukami-teoriya.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fromka.name%2F2009%2F12%2Fparser-svoimi-rukami-teoriya.html&amp;source=romkaby&amp;style=normal&amp;service=is.gd&amp;hashtags=php,%D0%BF%D0%B0%D1%80%D1%81%D0%B5%D1%80,%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://romka.name/2009/12/parser-svoimi-rukami-teoriya.html/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Загрузка файлов в стиле AJAX</title>
		<link>http://romka.name/2009/12/zagruzka-fajlov-v-stile-ajax.html</link>
		<comments>http://romka.name/2009/12/zagruzka-fajlov-v-stile-ajax.html#comments</comments>
		<pubDate>Tue, 22 Dec 2009 13:07:48 +0000</pubDate>
		<dc:creator>Ромка</dc:creator>
				<category><![CDATA[Программируем]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[загрузка файлов]]></category>
		<category><![CDATA[программирование]]></category>

		<guid isPermaLink="false">http://romka.name/?p=18</guid>
		<description><![CDATA[
			
				
			
		

      Собственно, первая статья на тему сайтостроения, не судите строго (:
      Значит в данный момент технология AJAX стала довольно популярной, а ведь действительно, очень удобно отправлять и получать данные без обновления страницы, экономит траффик, да и вообще это стильно. Аналогично есть и jquery, с этой системой вообще не знаком, но вроде принцип такой же - [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fromka.name%2F2009%2F12%2Fzagruzka-fajlov-v-stile-ajax.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fromka.name%2F2009%2F12%2Fzagruzka-fajlov-v-stile-ajax.html&amp;source=romkaby&amp;style=normal&amp;service=is.gd&amp;hashtags=html,javascript,php,%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0+%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2,%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" height="61" width="50" /><br />
			</a>
		</div>
<p style="text-align: justify;"><img class="size-full wp-image-19 alignleft" title="Загрузка файлов в стиле AJAX" src="http://romka.name/wp-content/uploads/2009/12/Загрузка-файлов-в-стиле-AJAX.jpg" alt="" width="350" height="200" /></p>
<p style="text-align: justify;">      Собственно, первая статья на тему сайтостроения, не судите строго (:<br />
      Значит в данный момент технология AJAX стала довольно популярной, а ведь действительно, очень удобно отправлять и получать данные без обновления страницы, экономит траффик, да и вообще это стильно. Аналогично есть и jquery, с этой системой вообще не знаком, но вроде принцип такой же - обмен информации с сервером без обновления страницы. Но есть загвоздка, эти новшества позволяют обмен данными, текстом, но на загрузку файлов это никак не распространяется. Они просто не предусмотрены для этого... И вот тут на помощь приходит язык PHP в связке с JavaScript!<span id="more-18"></span><br />
      Насчём с алгоритма, как всё это будет происходить. Из обычной формы данные о файле должны поступить на страницу загрузки, а чтобы пользователь не заметил, данный файл будет держать в скрытом айфрейме, а вместо кнопки "Загрузить" напишем, например, "ждите, идёт загрузка", ведь мало ли какой пользователь попадётся, будет нам не в тему психопатически жать на кнопки, а нам, естественно, это не нужно, да и вообще, надо же ему показать, что началась загрузка, ведь айфрейм у на скрытый (:. Далее php скрипт, скрывающийся в невидимом айфрейме, загружает файл и делат всё, что ему нужно и выводит данные, но полькольку он скрытый - нам нужно вывести текст "загружено" на главную страницу, или же на страницу "родителя", так как скрипт был запущен именно с этой, родительской страницы. Тут на помощь приходит JavaScript, который по id на родительской странице находит куда вставить этот текст. Впринципе, на этом скрипт заканчивается, теперь попробуем это написать.</p>
<p style="text-align: justify;">      Для начала напишем форму. Помним, что нам надо заменять кнопку всяким текстом, от скрипта, т.е. кнопка будет внутри поля, которое будет меняться. Это так:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;div id=&quot;res&quot;&gt; код_кнопки &lt;/div&gt;</pre></td></tr></table></div>

<p>      В данном случае, текст будет появляться между тэгами, там же должна быть и кнопка.<br />
И так же знаем, что при нажатии на кнопку (событие onsubmit) нам надо вывести текст "подождите, идёт загрузка". Так же не забываем, что у нас должен быть и скрытый айфрейм.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;form action=&quot;upload.php&quot; name=&quot;uploadForm&quot; method=&quot;post&quot; target=&quot;hiddenframe&quot; enctype=&quot;multipart/form-data&quot;  onsubmit=&quot;document.getElementById('res').innerHTML='Подождите, идёт загрузка...';return true;&quot;&gt;
&lt;input type=&quot;file&quot; name=&quot;userfile&quot; /&gt;&lt;br /&gt;
&lt;div id=&quot;res&quot;&gt;&lt;input type=&quot;submit&quot; value=&quot;Загрузить&quot;  /&gt;&lt;/div&gt;
&lt;/form&gt;
&lt;iframe id=&quot;hiddenframe&quot; name=&quot;hiddenframe&quot; style=&quot;width:0px; height:0px; border:0px&quot;&gt;&lt;/iframe&gt;</pre></td></tr></table></div>

<p style="text-align: justify;">      Разберём параметры тэга form:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">action=&quot;upload.php&quot;</pre></td></tr></table></div>

<p>      Указывает файл, который нужно открыть, т.е. который будет выполнять загрузку файла.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">name=&quot;uploadForm&quot;</pre></td></tr></table></div>

<p>      Имя формы</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">method=&quot;post&quot;</pre></td></tr></table></div>

<p>      Метод передачи данных. Бывает GET (тогда данные передаются через ссылку, т.е. появляются параметры, например index.php?name=vasya&amp;family=pupkin) и POST (передаются незаметно для юзера). Для передачи файлов годится только POST.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">enctype=&quot;multipart/form-data&quot;</pre></td></tr></table></div>

<p>     Здесь мы указываем тип данных.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">onsubmit=&quot;document.getElementById('res').innerHTML='Подождите, идёт загрузка...';return true;&quot;</pre></td></tr></table></div>

<p>      При нажатии кнопки "Загрузить" у нас срабатывает событие onsubmit. Состоит из двух частей:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'res'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">innerHTML</span><span style="color: #339933;">=</span><span style="color: #3366CC;">'Подождите, идёт загрузка...'</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>      Помещает текст "подождите, идёт загрузка" в поле, между нашими тэгами div. А находит его по id, который указан и в этом коде, и в параметре тэга div. У нас id в обоих случаях res.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>      Этот код сообщает, чтобы обработчик не остановился, а передал данные в айфрейм. Если вместо true написать false, то обработчик поймёт, что мы его вызвали только для смены текста и ничего отправлять не будет.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">target=&quot;hiddenframe&quot;</pre></td></tr></table></div>

<p>      А вот благодаря этому и получается, что сам скрипт загрузки открывается не в окне юзера, а во фрейме с именем hiddenframe.<br />
      Это всё, что должно содержаться в index.html</p>
<p style="text-align: justify;">      Теперь рассмотрим содержание файла upload.php... Что десь должно быть? Как и в обычном скрипте загрузка файла через функцию:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">move_uploaded_file</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'имя_поля_файла'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'tmp_name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'локальный_адрес_куда_загружать_файлы'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>      Дальше интересней, нам нужна функция, которая будет отправлять сообщение "загружено" на родительскую страницу. Я использую для этого такой код:</p>
<p style="text-align: justify;">

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> sendtext<span style="color: #009900;">&#40;</span><span style="color: #000088;">$out</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;script type=&quot;text/javascript&quot;&gt;'</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'window.parent.document.getElementById(&quot;res&quot;).innerHTML=&quot;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$out</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot;;'</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;/script&gt;'</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>      Это PHP-функция, которая, в свою очередь, печатает JavaScript код вставки текста:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">window.<span style="color: #660066;">parent</span>.<span style="color: #660066;">document</span>.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;res&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">innerHTML</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;'.$out.'&quot;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>      Именно этот JS код находит по id (сдесь опять указано res) на родительской странице нужный участок, куда впихнуть текст.<br />
      Итак, у нас есть php-функция, которая может напечатать текст "загружено" таким образом:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">sendtext<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'загружено'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>      Итак, вот содержание файла upload.php:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000000; font-weight: bold;">function</span> sendtext<span style="color: #009900;">&#40;</span><span style="color: #000088;">$out</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;script type=&quot;text/javascript&quot;&gt;'</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'window.parent.document.getElementById(&quot;res&quot;).innerHTML=&quot;'</span><span style="color: #339933;">.</span><span style="color: #000088;">$out</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&quot;;'</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;/script&gt;'</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">move_uploaded_file</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_FILES</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'имя_поля_файла'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'tmp_name'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'локальный_адрес_куда_загружать_файлы'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
sendtext<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'загружено'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>      Вот, собственно, и всё! Единственное, что хочу заметить, что если передавать через данную функцию текст с ковычками, то перед ними надо ставить обратный слаш \, иначе будет неправильно работать js-код.</p>
<p style="text-align: justify;"><a title="Пример этого скрипта" href="http://romka.name/script/index.php?p=1" target="_blank">Пример этого скрипта</a></p>
<p><img width='45' height='15' border='0' src='http://counter.feedcount.net/sko36k5ii7wsgh70i3mbm4fo6o8hm1.jpg' /></p>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fromka.name%2F2009%2F12%2Fzagruzka-fajlov-v-stile-ajax.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fromka.name%2F2009%2F12%2Fzagruzka-fajlov-v-stile-ajax.html&amp;source=romkaby&amp;style=normal&amp;service=is.gd&amp;hashtags=html,javascript,php,%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0+%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2,%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://romka.name/2009/12/zagruzka-fajlov-v-stile-ajax.html/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

