2013-06-12 22 views
5

Sto utilizzando la funzione file_get_contents per ottenere i contenuti dalla pagina web. qualche sito funziona bene, ma la maggior parte di loro mi darà questo erroreRichiesta HTTP fallita! Servizio HTTP/1.1 503 temporaneamente non disponibile

failed to open stream: HTTP request failed! HTTP/1.1 503 Service Temporarily Unavailable 

Ecco il mio semplice codice

echo file_get_contents("url"); 

Quando ho eseguito questo URL sul browser funziona fine.what può essere il problema?

+1

non si potrebbe avere un colpo di testa di richiesta necessaria al fine di ricevere una risposta valida. –

+0

cosa significa? Cosa posso fare? Non è possibile farlo per quei siti? –

risposta

6

503 significa che le funzioni funzionano e si sta ricevendo una risposta dal server remoto che ti rifiuta. Se hai mai provato i risultati di google cURL accade lo stesso, perché possono rilevare l'user-agent usato da file_get_contents e cURL e come risultato bloccare quegli user-agent. È anche possibile che il server a cui accedi abbia anche il suo indirizzo IP blackballed per tali pratiche.

Principalmente tre motivi comuni per cui i comandi non funzionavano proprio come il browser in una situazione remota.

1) The default USER-AGENT has been blocked. 
2) Your server's IP block has been blocked. 
3) Remote host has a proxy detection. 
+0

ho provato anche questo ... non riesco a ottenere nulla ... –

+0

è possibile accedere a tali URL manualmente, giusto? –

+0

sì ... quando corro nel browser viene eseguito ... –

0

Con questo script tutto Sito pensare sei un browser:

<?php 
$url='http://mywebsite.com' 
$ch = curl_init(); 
    $user_agent='Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0'; 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
      curl_setopt($ch, CURLOPT_AUTOREFERER, false); 
    curl_setopt($ch, CURLOPT_VERBOSE, 1); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 

     curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_SSLVERSION,CURL_SSLVERSION_DEFAULT); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
     $webcontent= curl_exec ($ch); 
     $error = curl_error($ch); 
     curl_close ($ch); 
?> 
+1

Non proprio infallibile, Google rifiuterà la richiesta se fate troppe richieste, anche con una stringa di agente utente del browser. ho provato a selezionare casualmente da una serie di stringhe diverse per ogni cURL, ma è troppo tardi. Spero solo che si resetta dopo un certo periodo di tempo. – TARKUS

Problemi correlati