Cevapla

PHP’de Web Örümceklerini Tespit Etmek
Sitenin kimler ya da kaç kişi tarafından ziyaret edildiğini bilmek birçok web programcısının önemsediği bir şeydir. Arama motorlarının örümceklerinin sitemizi taradığı durumlarda sadece $_SERVER[’HTTP_USER_AGENT’]
‘ı kullanmak örümcekleri de gerçek ziyaretçiler olarak değerlendirmek olur ki bu doğru sonuç vermez. Bu sebeple aşağıda sitemizi ziyaret eden kişinin web örümcekleri olup olmadığını anlamak için basit bir kod yazdım.
function OrumcekMi($ziyaretci) { $orumcekler = array('Google' => 'Google', 'MSN' => 'msnbot', 'Rambler' => 'Rambler', 'Yahoo' => 'Yahoo', 'AbachoBOT' => 'AbachoBOT', 'accoona' => 'Accoona', 'AcoiRobot' => 'AcoiRobot', 'ASPSeek' => 'ASPSeek', 'CrocCrawler' => 'CrocCrawler', 'Dumbot' => 'Dumbot', 'FAST-WebCrawler' => 'FAST-WebCrawler', 'GeonaBot' => 'GeonaBot', 'Gigabot' => 'Gigabot', 'Lycos spider' => 'Lycos', 'MSRBOT' => 'MSRBOT', 'Altavista robot' => 'Scooter', 'AltaVista robot' => 'Altavista', 'ID-Search Bot' => 'IDBot', 'eStyle Bot' => 'eStyle', 'Scrubby robot' => 'Scrubby'); // Aslında yukarıdaki diziyi tek boyutlu tuttuğumuzda aşağıdaki gibi in_array fonksiyonunu kullanmak için diziyi tek boyutlu hale getirmek zorunda kalmayız. Ama ileride örümceklerin adlarını da kullanmak gerekebilir diye adlarını ve anahtarlarını birlikte tuttum. foreach ($orumcekler as $a => $b) $oruncek_adlari[] = $a; return (in_array($ziyaretci, $oruncek_adlari)) ? true : false; } $orumcek_mi = OrumcekMi($_SERVER['HTTP_USER_AGENT']); if ($orumcek_mi) { // Evet bu bir örümcek. Burayı örümcekle ilgili kısma kaydet. } else { // Bu bir gerçek ziyaretçi. }