2010-05-21 5 views
1

pourquoi je ne reçois pas le retour sur file_get_contents (myurl de $), mais je ne suis sortie pour wgetpas de retour pour file_get_contents()?

mise à jour:

i CURL pour obtenir l'en-tête de retour et le résultat et la découverte que l'on est sur la dans la place de tête To corps

HTTP/1.1 200 Document follows 
Transfer-Encoding: chunked 
Content-type: text/plain 
Server: XMS (724Solutions HTA XSAM_30_M2_B020 20070803.172831) 
Date: Fri, 21 May 2010 10:48:31 GMT 
Accept-Ranges: bytes 

HTTP/1.1 404 ChargedPartyNotAvailable 
Transfer-Encoding: chunked 
Content-type: text/plain 
Server: XMS (724Solutions HTA XSAM_30_M2_B020 20070803.172831) 
Date: Fri, 21 May 2010 10:34:13 GMT 
Accept-Ranges: bytes 

Comment puis-je extraire uniquement « 200 Suivez le document » et « 404 ChargedPartyNotAvailable »?

+1

Veuillez montrer du code et expliquer plus en détail ce que vous faites. –

Répondre

5

Avez-vous allow_url_fopen activé dans votre configuration php?

Cependant, je m'attendrais à ce que vous receviez un avertissement si non - avez-vous des erreurs/avertissements affichés? Vous pouvez ajouter temporairement en haut de votre script:

error_reporting(E_ALL); 
ini_set('display_errors', true); 

et vous pouvez voir pourquoi file_get_contents() ne fonctionne pas.

Modifier

Vous pourriez être en mesure d'utiliser get_headers() si vous n'êtes intéressé que par les en-têtes.

+0

+1 pour allow_url_fopen et la suggestion error_reporting (bien que je voudrais simplement enregistrer les erreurs: p). – wimvds

+0

aucun problème avec la configuration. il semble que le résultat est apparu dans l'en-tête pas dans le corps – conandor

+0

@conandor: mise à jour réponse basée sur votre édition –

3

Vous pouvez utiliser package PHP Curl pour récupérer le contenu de l'URL

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$myUrl); 
$result = curl_exec($ch); 
curl_close($ch); 

Ou si vous voulez utiliser seulement file_get_contents, vérifiez si vous avez configuré correctement PHP.ini

http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen

Comme mentionné ici (http://php.net/manual/en/function.file-get-contents.php)

Une URL peut être utilisée comme un fi lname avec cette fonction si les wrappers fopen ont été activés. Voir fopen() pour plus de détails sur la façon de spécifier le nom de fichier .

+0

+1 pour la solution curl alternative – wimvds

+0

la configuration PHP est ok. il semble qu'il apparaisse seulement en-tête au lieu du corps – conandor

+0

Pour ceux qui veulent utiliser la variable '$ result', ajoutez cette curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true);' avant $ result = curl_exec ($ ch) 'en premier. Car comme c'est, la variable est tout à fait inutile. Mais encore +1 pour la boucle courte. –

0

Vous pouvez essayer:

$contents = implode('', file($myurl)); 

Je l'utilise très souvent.