Monday, June 14, 2010

PHP get content from URL

ตามกระแสบอลโลก
พอดีเห็น Google เค้ามีผลบอลแสดงไว้ในหน้า search result ด้วย
ก็เลยคิดว่าถ้าอยากเอามา show ใน page เราบ้างจะทำยังไง
หา feed แล้วที่อื่่นๆก็ไม่มีให้โหลดเลย

เลยลองเขียนอ่านจาก Google หน่อยล่ะกัน พอดีว่า
php ที่รันบน server ที่มีไม่รองรับ file_get_contents()
จึงต้องมาใช้ CURL แทน ดังนี้ครับ


$url = "http://www.google.co.th/search?hl=th&source=hp&q=world+cup+result&btnG=ค้นหาด้วย+Google&aq=f&aqi=&aql=&oq=&gs_rfai=";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 0);
curl_setopt($ch, CURLOPT_FAILONERROR, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, 1);

$result = curl_exec($ch);
curl_close($ch);

$patterns = array();
$patterns[0] = '/HTTP.*[\s\S]*iGoogle/';
$patterns[1] = '/FIFA.com - 2010.*[\s\S]*/';
$patterns[2] = '/\
$patterns[3] = '/\/url\\?/';
$replacement = '';
$result = preg_replace($patterns, $replacement, $result);
$result = preg_replace('/q=/', $replacement, $result);
echo $result;

No comments: