Bu hata bana ızdırap saatlerce vermiştir. Bu ben ne yapıyorum basitleştirilmiş bir versiyonu:
[01] $h = get_headers($url, 1);
[02] $resp_code = $h[0];
[03] $resp_code = strtolower($resp_code);
[04] $resp_code = str_replace(' ','',$resp_code);
[05] echo 'just before going in. $resp_code = ' . $resp_code . '<br/>';
[06] switch ($resp_code) {
[07] case 'http/1.1200ok':
[08] echo '200';
[09] break;
[10] case 'http/1.0301movedpermanently':
[11] echo '301';
[12] break;
[13] case 'http/1.0302movedtemporarily':
[14] echo '302';
[15] break;
[16] case 'http/1.0404notfound':
[17] echo '404';
[18] }
[19] echo 'just got out.';
Ben olsun çıktı. farklı adresler çalışırken, bazı URL'ler için o tüm çıkış herhangi bir yanıt kodu değil doğru ve bazıları için çalışıyor, farklı! Olsa gelen ne hattında 5 gösteriler yankı Eğer case s girilmelidir birini bekliyoruz, öyle değil mi, ve sonraki çıktı hattının 19 geliyor.
Tüm daha düşük yanıt kodları çevirdim ve elimden alanlarda, farklı sunucular tarafından gönderilen metin arasında var olabilecek küçük farklılıklar dışında faktör için bir girişim olarak yapıldığını merak edebilirsiniz. Bunun gerçekleşmesi ya da değil eğer, bu durumda sadece ve dehşet dışında yapıldığını farkında değilim: (
Karakter kodlaması bunu ilgili olabilir mi? enflasyon / deflasyon? PHP bir hata? benim sistemde bir virüs?
Herhangi bir yardım büyük mutluluk duyacağız.