การเซต timeout ในฟังก์ชัน file_get_contents ของ PHP

วันนี้เอาวิธีการเซตค่า timeout ให้กับฟังก์ชัน file_get_contents ของ PHP มาฝาก ซึ่งปกติผมก็ไม่ได้มีการเซตค่า timeout สำหรับฟังก์ชันนี้เลย ซึ่งอาจจะทำให้ response time ของเว็บเราเยอะได้ จะส่งผลต่อ robot ของ search engine เอา โดยการเซตค่า timeout ให้ฟังก์ชัน file_get_contents เป็นการบอกให้ฟังก์ชันไม่ต้องรอต่อไป หาก url ที่เราดึงเนื้อหาไม่ยอม response ค่ากลับมาภายในเวลาที่เรากำหนด

//สร้าง stream context
$context = stream_context_create(array(
    'http' => array(
        'timeout' => 3      // timeout มีหน่วยเป็นวินาที
    )
));

//ดึงเนื้อหาจากลิงค์ http://www.imooh.com
$contents = file_get_contents('http://www.imooh.com', 0, $context);

// ตรวจสอบว่ามีเนื้อหากลับมารึป่าว
if (!empty($contents))
{
//ถ้ามีจะทำอะไรกับเนื้อหา (ผม echo ออกไปเลยละกัน ^^)
    echo $contents;
}
else
{
    //ถ้าไม่มีจะแสดงอะไร
}

ฟังก์ชัน file_get_contents ยังมีลูกเล่นอีกเยอะครับ เดี๋ยวถ้ามีเวลาจะเอามาฝากอีกครับ ^^