Sto gestendo un sito di feed reader, dove ci sarà un sacco di RSS in giro. Dovrò sincronizzare tali feed il più spesso possibile, quindi ho trovato questi due metodi per farlo.CURL o file_get_contents per aggiornare un elenco di feed?
1 Metodo: Usando CURL
$weblog_name = 'MyBlog';
$weblog_url = 'http://feeds.feedburner.com/myblog';
$ping_url = 'http://ping.feedburner.com';
$request = <<<EOT
<?xml version="1.0" encoding="iso-8859-1"?>
<methodCall>
<methodName>weblogUpdates.ping</methodName>
<params>
<param>
<value>
<string>$weblog_name</string>
</value>
</param>
<param>
<value>
<string>$weblog_url</string>
</value>
</param>
</params>
</methodCall>
EOT;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $ping_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, trim($request));
$result = curl_exec($ch);
curl_close($ch);
Secondo metodo: file_get_contents
file_get_contents("http://feedburner.google.com/fb/a/pingSubmit?bloglink=http://feeds.feedburner.com/myblog");
La mia domanda è: quale è la soluzione migliore e più veloce per eseguire il ping almeno 50 i feed in una sola volta?
non ho familiarità con Curl , ottiene i contenuti? Voglio dire come funziona? Inoltre, 50 get_file_contents sarà molto lento? – EnexoOnoma
cURL otterrà anche le intestazioni per la richiesta http. È possibile aggiungere intestazioni delle proprie richieste, variabili post e server proxy in cURL. Tuttavia, per una semplice richiesta get, cURL non è necessario. Trovo che cURL impieghi 10 ms più a lungo sul mio server di wamp apache2.2.17 php5.3.5 per http://www.google.com –
@mtopia in realtà non fa differenza perché get_file_contents è sincrono, cioè viene eseguita la riga successiva solo dopo che questa linea è stata completamente eseguita –