<?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>Skipstorm &#187; dom</title>
	<atom:link href="http://www.skipstorm.org/tag/dom/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.skipstorm.org</link>
	<description></description>
	<lastBuildDate>Sat, 31 Jul 2010 00:20:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Estrarre contenuti da flickr in php con DOM e CURL</title>
		<link>http://www.skipstorm.org/2010/01/estrarre-contenuti-da-flickr-in-php-con-dom-e-curl/</link>
		<comments>http://www.skipstorm.org/2010/01/estrarre-contenuti-da-flickr-in-php-con-dom-e-curl/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 10:28:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[WD Snippets]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[curl]]></category>
		<category><![CDATA[dom]]></category>
		<category><![CDATA[snippets]]></category>
		<category><![CDATA[Sviluppo Web]]></category>

		<guid isPermaLink="false">http://www.skipstorm.org/?p=831</guid>
		<description><![CDATA[Ovviamente il modo migliore di estrarre contenuti da flickr è utilizzare le sue api ma vi offro questo script come esempio in modo che possa essere modificato per altri scopi. Il dom non può essere utilizzato solo per html ma anche per l&#8217;xml e simili, un feed RSS ad esempio. Gli utilizzi possibili sono diversi, [...]]]></description>
			<content:encoded><![CDATA[<p>Ovviamente il modo migliore di estrarre contenuti da flickr è utilizzare le sue api ma vi offro questo script come esempio in modo che possa essere modificato per altri scopi. Il dom non può essere utilizzato solo per html ma anche per l&#8217;xml e simili, un feed RSS ad esempio.</p>
<p>Gli utilizzi possibili sono diversi, dall&#8217;inserire su un sito i contenuti di un altro (se i copyright lo permettono) al monitoraggio di un sito, potreste ad esempio voler ricevere un&#8217;email quando viene pubblicato un nuovo articolo sul vostro sito preferito e così via.</p>
<p><span id="more-831"></span>Ecco lo script, gia dal codice dovrebbe essere abbastanza chiaro, comunque ho aggiunto dei commenti.</p>
<p>Lo script estrae prima il div contenente le immagini risultanti dalla ricerca, da questo estrae le immagini e visualizza solo quelle con una determinata classe.</p>
<pre class="brush: php;">&lt;?php
// Creazione dell'oggetto
$doc = new DOMDocument();

// Ci possono essere errori di parsing, con @ non vengono visualizzati
@$doc-&gt;loadHTML(getPage('http://www.flickr.com/search/?q=gatto'));
// getElementById funziona esattamente come in javascript
$imgContainer = $doc-&gt;getElementById('ResultsThumbsDiv');
// stessa cosa per getElementsByTagName, viene restituito un oggetto
$images = $imgContainer-&gt;getElementsByTagName( 'img' );

// Utilizziamo l'oggetto come fosse un array
foreach($images as $img){
	// Nel risultato sono presenti altre immagini oltre alle anteprime
	// Con firebug vediamo che queste hanno classe pc_img quindi controlliamo l'attributo
	// Si può accedere a qualsiasi attributo con questo metodo
    if($img-&gt;getAttribute('class') == 'pc_img')
    echo '&lt;img src=&quot;'.$img-&gt;getAttribute('src').'&quot; style=&quot;float:left;&quot;/&gt;';
}

/*
funzione che da un'indirizzo restituisce il contenuto della pagina
*/
function getPage($url){
    if (!function_exists('curl_init')){
        die('CURL non è installato sul server!');
    }
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    $output = curl_exec($ch);
    curl_close($ch);

    return $output;
}
?&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.skipstorm.org/2010/01/estrarre-contenuti-da-flickr-in-php-con-dom-e-curl/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  www.skipstorm.org/tag/dom/feed/ ) in 0.37425 seconds, on Jul 31st, 2010 at 7:39 am UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Jul 31st, 2010 at 8:39 am UTC -->