erreur avec la fonction file_get_contents sur une ressource HTTP
Bonjour a tous
voila j'aimerai comprendre pourquoi ceci :
Code:
1 2 3
|
$url='http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
$contenu = file_get_contents($url); |
renvoit :
Citation:
Warning: file_get_contents(
http://localhost/NewFolder/new5.php) [function.file-get-contents]: failed to open stream: HTTP request failed! in C:\wamp\www\NewFolder\new5.php on line 6
(sachant que le fichier existe bien a l'adresse en question)
alors que :
Code:
1 2 3
|
$self = basename($_SERVER['PHP_SELF']);
$contenu = file_get_contents("$self"); |
fonctionnera parfaitement.
L'erreure du premier semble venir du fait que la fonction s'appelle en boucle comme si le contenu appelé etait executé.
D'ou l'etrangeté que le deuxieme marche parfaitement.
suite a une discussion avec onet sur le chat, on en est arrivé a supposer que ce serait par securité que php permettrait d'accéder a la source pour un appel type file_get_contents('file.php') mais qu'il executerait le code pour un appel type file_get_contents('http://url.com/file.php'). (afin de ne pas recupéré les fichiers config d'un site (dixit onet)).
Qu'en pensez vous? Quelqu'un aurait il l'explication?