file_get_contents contenu externe ne fonctionne pas

worms_x
Invité n'ayant pas de compte PHPfrance

15 oct. 2010, 13:52

Bonjour,

Voilà mon problème,

Je dois inclure un header dans une page php en allant chercher le contenu dans une page html sur un serveur différent de là ou se trouve la page php.

Je fais donc :

Code : Tout sélectionner

$header=file_get_contents("url/header.html"); echo $header;
et ça me renvoi :

file_get_contents(url/header.htm) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in*

J'avais fait cela sur un autre serveur (de test) et ca avait très bien fonctionné, je pense donc que cela viens de la configuration du serveur ou j'ai ma page.php

J'ai vérifié allow_url_open=On

Par contre j'ai un doute sur include_path qui est sur : .:

Sinon après mes connaissances sur les autres paramètres qui pourraient générer cette erreur sont limitées...

Merci pour votre aide.

ViPHP
ViPHP | 5462 Messages

15 oct. 2010, 13:54

c'est juste que ton fichier n'existe pas

Eléphant du PHP | 398 Messages

15 oct. 2010, 13:56

Il faut prendre la racine du document sur le serveur ou l'URL pour ce genre de fonction ? Le soucis est peut-êter tout simplement là :)
----------------------------------------------------------------------------------
https://astro-otter.space - Discover wonders and mysteries of Universe

Invité
Invité n'ayant pas de compte PHPfrance

15 oct. 2010, 14:17

Merci pour votre réponse rapide.

Concernant l'include_path, j'ai le même sur le serveur de test et le serveur donc on oublie cette piste...

c'est juste que ton fichier n'existe pas
Le fichier existe bien puisqu'il fonctionne sur le serveur de test et si je tape l'url dans un navigateur ça affiche bien le contenu du header...
Il faut prendre la racine du document sur le serveur ou l'URL pour ce genre de fonction ?
Là je capte pas trop. J'insiste sur le fait que l'inclusion marche sur un autre serveur.. donc l'URL ne devrait pas être modifiée...

ViPHP
ViPHP | 5462 Messages

15 oct. 2010, 14:20

fais un
var_dump(get_headers($url));

Invité
Invité n'ayant pas de compte PHPfrance

15 oct. 2010, 15:35

Merci pour la commande :

Donc voilà le résultat :

Serveur qui marche

Code : Tout sélectionner

array(10) { [0]=> string(15) "HTTP/1.0 200 OK" [1]=> string(14) "Server: Apache" [2]=> string(21) "Content-Length: 13400" [3]=> string(23) "Content-Type: text/html" [4]=> string(51) "ETag: "3e8ad70a60c8dd94f14f9c77f5120868:1281104712"" [5]=> string(38) "Expires: Fri, 15 Oct 2010 13:25:23 GMT" [6]=> string(44) "Cache-Control: max-age=0, no-cache, no-store" [7]=> string(16) "Pragma: no-cache" [8]=> string(35) "Date: Fri, 15 Oct 2010 13:25:23 GMT" [9]=> string(17) "Connection: close" }
Serveur où ça ne marche pas:

Code : Tout sélectionner

array(9) { [0]=> string(22) "HTTP/1.1 404 Not Found" [1]=> string(35) "Date: Fri, 15 Oct 2010 13:32:21 GMT" [2]=> string(29) "Server: Apache/2.2.3 (CentOS)" [3]=> string(44) "Last-Modified: Thu, 01 Jul 2010 09:13:38 GMT" [4]=> string(27) "ETag: "3b8225-3c2-e2be1480"" [5]=> string(20) "Accept-Ranges: bytes" [6]=> string(19) "Content-Length: 962" [7]=> string(17) "Connection: close" [8]=> string(23) "Content-Type: text/html" } Accueil > Wanted
J'en déduis quoi ?

ViPHP
ViPHP | 5462 Messages

15 oct. 2010, 15:38

c'est une url relative ?

Invité
Invité n'ayant pas de compte PHPfrance

15 oct. 2010, 16:20


ViPHP
ViPHP | 5462 Messages

15 oct. 2010, 16:27

sois ton path n'est pas bon, sois ton fichier n'existe pas

Invité
Invité n'ayant pas de compte PHPfrance

15 oct. 2010, 16:49

Pourquoi cela marche alors en faisant la même chose sur un autre serveur?

ViPHP
ViPHP | 5462 Messages

15 oct. 2010, 16:52

Pourquoi cela marche alors en faisant la même chose sur un autre serveur?
parce que c'est un autre serveur, même adresse ? même sous dossier ? même virtual-directory ?

Invité
Invité n'ayant pas de compte PHPfrance

15 oct. 2010, 16:57

J'ai trois serveurs indépendants totalement différents,

Sur un serveur j'ai le fameux header.htm .
Sur un autre j'appelle ce header et ça fonctionne
Sur un autre serveur encore, j'appelle le même header et ça ne fonctionne pas, les configurations php des deux serveurs qui appellent le header sont pratiquement identiques (version php plus récente sur l'un).

ViPHP
ViPHP | 5462 Messages

15 oct. 2010, 16:59

de toute facon c'est simple, test en ouvrant le fichier avec le navigateur