<?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>Ivan Rosolen &#187; regex</title>
	<atom:link href="http://ivanrosolen.com/tag/regex/feed/" rel="self" type="application/rss+xml" />
	<link>http://ivanrosolen.com</link>
	<description>Inovações Tecnológicas</description>
	<lastBuildDate>Mon, 12 Jul 2010 09:44:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Status Correios</title>
		<link>http://ivanrosolen.com/2008/12/12/status-correios/</link>
		<comments>http://ivanrosolen.com/2008/12/12/status-correios/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 05:52:23 +0000</pubDate>
		<dc:creator>Ivan</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[regex]]></category>

		<guid isPermaLink="false">http://ivanrosolen.com/v3/?p=73</guid>
		<description><![CDATA[Meu amigo precisava de uma ajuda para recuperar os status que o Correios gera para as encomendas.
Lembrei que havia feito isso na última empresa que trabalhei e agora resolvi compartilhar.
Não é 100% garantido, pois eu leio via REGEX o source da página ok?
Após recuperar o source HTML da página do Correios via cURL ou file_get_contents, <a href="http://ivanrosolen.com/2008/12/12/status-correios/" class="more-link">More &#62;</a>]]></description>
			<content:encoded><![CDATA[<p>Meu amigo precisava de uma ajuda para recuperar os status que o Correios gera para as encomendas.</p>
<p>Lembrei que havia feito isso na última empresa que trabalhei e agora resolvi compartilhar.</p>
<p>Não é 100% garantido, pois eu leio via <strong>REGEX</strong> o source da página ok?</p>
<p>Após recuperar o source HTML da página do Correios via <strong>cURL</strong> ou <strong>file_get_contents</strong>, utilizo a seguinte função para tratar o conteúdo e retornar um array contendo os dados do Correios.</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
</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: #009933; font-style: italic;">/**
 * Retorna todos os status do Correios para ID enviado
 *
 * @param  string $id_correios ID do Correios
 * @return array  $array_retorno
 */</span>
<span style="color: #000000; font-weight: bold;">function</span> status_correios<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$id_correios</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000088;">$conteudo</span> <span style="color: #339933;">=</span> <span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'http://websro.correios.com.br/sro_bin/txect01$.QueryList?P_LINGUA=001&amp;P_TIPO=001&amp;P_COD_UNI='</span><span style="color: #339933;">.</span><span style="color: #000088;">$id_correios</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$conteudo</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000088;">$array_retorno</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'/&lt;tr&gt;\s*&lt;td[^&gt;]*&gt;(.*)&lt;\/td&gt;\s*&lt;\/tr&gt;/'</span> <span style="color: #339933;">,</span> <span style="color: #000088;">$conteudo</span> <span style="color: #339933;">,</span> <span style="color: #000088;">$array_regex</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span><span style="color: #990000;">is_array</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$array_regex</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$array_regex</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;=</span> <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$array_regex</span><span style="color: #009900;">&#91;</span> <span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#93;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$linha</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
        <span style="color: #000088;">$foo</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'&lt;/td&gt;&lt;td&gt;'</span> <span style="color: #339933;">,</span> <span style="color: #000088;">$linha</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">strip_tags</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$foo</span><span style="color: #009900;">&#91;</span> <span style="color: #cc66cc;">2</span> <span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$array_retorno</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">strip_tags</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$foo</span><span style="color: #009900;">&#91;</span> <span style="color: #cc66cc;">0</span> <span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #990000;">strip_tags</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$foo</span><span style="color: #009900;">&#91;</span> <span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #990000;">strip_tags</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$foo</span><span style="color: #009900;">&#91;</span> <span style="color: #cc66cc;">2</span> <span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>  
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$array_retorno</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p><strong><a title="Arquivo Exemplo de Status Correios" href="http://www.ivanrosolen.com/wp-content/uploads/2008/12/correios_php.zip" target="_blank"><img class="size-full wp-image-93" title="Status Correios PHP" src="http://ivanrosolen.com/wp-content/uploads/2008/12/php_icon2.png" alt="Status Correios PHP" width="32" height="32" align="middle" /></a> <a title="Arquivo Exemplo de Status Correios" href="http://www.ivanrosolen.com/wp-content/uploads/2008/12/correios_php.zip" target="_blank">Baixar Código Fonte Completo</a></strong></p>
<p>ps.: tentei colocar o código fonte completo aqui mas foi humanamente impossível.</p>
<p>Utilizei esse método pois tratava o array com os dados e armazenava em um banco de dados. Caso queria apenas exibir o <a title="Jonao Vagner" href="http://www.joaovagner.com.br/" target="_blank">João Vagner</a> me mostrou esse <a title="Status Correios RSS" href="http://standardista.com.br/?p=6" target="_blank">link</a>.</p>
<p>Dúvidas? Só enviar um email ou perguntar nos comentários.</p>
]]></content:encoded>
			<wfw:commentRss>http://ivanrosolen.com/2008/12/12/status-correios/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
