8791 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai un petit problème avec la fonction file_get_contents().

Lorsque que je fais par exemple :
file_get_contents('index.php');
Je n'ai aucun problème.

Par contre, dès que je mets des paramètres dans l'URL :
file_get_contents('index.php?page=truc');
Il me retourne une erreur :
Warning: file_get_contents() [function.file-get-contents]: Unable to access index.php?page=truc in xxx/test.php on line 3

Warning: file_get_contents(index.php?page=truc) [function.file-get-contents]: failed to open stream: No such file or directory in xxx/test.php on line 3


Merci d'avance pour votre aide !
Meilleures salutations.

swissboy
Modifié par swissboy (28 Jun 2007 - 14:18)
C'est normal cette fonction lit le contenu d'un fichier .
tu ne peux pas y passer d'arguments ( ca n'a pas de sens d'ailleur vu que le fichier n'est pas interpreté ) . si tu met ca


file_get_contents('index.php?page=truc');


il cherche un fichier qui ce nomme ' index.php?page=truc' il n'interprète pas le "?" comme un argument .
Modifié par PeterPetrelli (28 Jun 2007 - 12:08)
Merci pour l'info !

Je viens de mettre en place des règles d'URL Rewriting pour le reste du site.

Donc maintenant j'ai :
http://www.monsite.com/accueil.html


au lieu de
http://www.monsite.com/index.php?page=accueil


J'ai voulu retester au cas où, mais comme tu l'as dit, le fichier accueil.html n'existe pas réellement sur le serveur, lui non plus Smiley ohwell

Je vais faire quelques tests pour trouver une autre solution ! Merci encore !
Administrateur
Bonjour,

si tu veux récupérer le contenu d'une page comme le verrait un navigateur regarde du côté de libcurl
Felipe a écrit :
Bonjour,

si tu veux récupérer le contenu d'une page comme le verrait un navigateur regarde du côté de libcurl


Salut !

Oui je me rappelle avoir utilisé ça pour l'extraction de données ! Merci !
En fait j'avais besoin de recupérer ce code pour le convertir en PDF, mais je vais simplement faire un css différent pour l'impression, ce sera plus simple...
Smiley smile
En fait il ne faut pas confondre :
- récupérer le contenu d'un fichier script
- récupérer la sortie d'un script apres interpretation

file_get_contents() revient à ouvrir un fichier sous notepad pour en voir le contenu .

si tu veux récupérer sortie du script tu peux utiliser le tampon de sortie avec ob_start() et ensuite assigner la sortie à une variable avec ob_get_contents()
Modifié par PeterPetrelli (28 Jun 2007 - 15:58)
Une autre solution possible est de remplacer :
file_get_contents('index.php?page=truc');
par :
file_get_contents("http://www.tonsite.com/index.php?page=truc");

L'adresse devenant une URL plutôt qu'une adresse locale, cela a pour conséquence d'envoyer une requête HTTP sur ton propre serveur, ce qui te renvoie le contenu généré.
Restriction : il faut que l'option Allow URL Fopen soit activée dans le php.ini. En général elle y est, mais vaut mieux prévenir, on ne sait jamais.