ตรวจสอบว่าเพจถูกเรียกมาจาก Spider หรือไม่

ฟังก์ชั่น isSpider จะทำการตรวจสอบว่าเพจถูกเรียกใช้โดย Web Spider เช่น Google หรือ Yahoo หรือ MSN หรือไม่ โดยทำการตรวจสอบกับ Spder หลักๆ เท่านั้นครับ หากต้องการตรวจสอบกับ Spider อื่นๆ สามารถดูรายชื่อได้จาก List of Robot Agent

<?php  
    function isSpider( $user_agent )
    {
        $gent = strtolower( $user_agent );
        $known_spiders = array ( 'wisenutbot' , 'msnbot' , 'w3c_validator' , 'googlebot-image' , 'googlebot' , 'google-sitemaps' ,
            'mediapartners-google' , 'openbot' , 'yahoo! slurp' , 'fast-webcrawler' , 'wget' , 'ask jeeves' , 'speedy spider' ,
            'surveybot' , 'ibm_planetwide' , 'gigabot' , 'ia_archiver' , 'fast-webcrawler' , 'inktomi slurp' , 'appie' ,
            'feedburner/1.0' , 'feedfetcher-google' , 'omniexplorer_bot/6.68' , 'http://www.relevantnoise.com' ,
            'newsgatoronline/2.0' , 'ping.blo.gs/2.0' , 'jakarta commons-httpclient/3.0.1' , 'jakarta commons-httpclient/3.0-rc2' );
       
        foreach( $known_spiders as $spider )
        {
            if ( strpos( $gent , $spider ) !== false )
            {
                return true;
            };
        };
        return false;
    };

    if ( isSpider( $_SERVER[HTTP_USER_AGENT] ) )
    {
        // ถ้ามาจาก Spider
    }
?>

ประโยชน์ของฟังก์ชั่นนี้ก็แล้วแต่การใช้งานครับ เช่นการตรวจสอบเพื่อไม่ให้ SE เข้ามาในหน้าที่เราไม่ต้องการ หรือการควบคุมให้ SE ไปยังเส้นทางที่กำหนด
ผู้เขียน goragod โพสต์เมื่อ 04 มิ.ย. 2551 เปิดดู 4,978 ป้ายกำกับ PHP
^