Petit contexte: Je développe une fonction eval capable de détecter les problèmes d'analyse. Il a besoin de file_get_contents
sur un fichier PHP créé en utilisant son URL. Veuillez ne pas dire EVAL est EVIL. Je posterai ma nouvelle fonction eval après avoir corrigé ce problèmePHP + IIS: file_get_contents "se bloque" en utilisant un URL localhost
OK. Test simple:
$fc = "Not executed";
$tmpDir = "var/temp-eval/";
$tmpfname = "t.php";
$ctx = stream_context_create(array(
'http' => array(
'timeout' => 1
)
)
);
echo "BEGIN<br>";
//// Both below makes the page hangs
// TRY #1
//$fc = @file_get_contents(Common::getRootUrl() . $tmpDir . $tmpfname, false, $ctx);
// TRY #2
//$fc = @file_get_contents(Common::getRootUrl() . $tmpDir . $tmpfname);
//// Below, doesn't hang
// TRY #3
//$fc = file_get_contents("http://www.SOMEWEBSITE.COM");
echo $fc;
echo "<br>END";
En l'état, tous les commentés, cela fonctionne. La page termine le chargement et affiche le code HTML.
soit TRY Enlever les commentaires # 1 ou # 2 TRY (URL interne), la page ne se termine jamais à charger. Mais ... en utilisant xdebug et en suivant le code, je peux voir le contenu obtenu en $fc
et le code semble bien fonctionner - sauf le hang -. Mais ... en utilisant ce code sur un serveur Linux en utilisant Apache, cela fonctionne parfaitement. :) :(
décommentant # 3 TRY (URL externe), il fonctionne très bien à la fois l'environnement.
je soupçonne une configuration dans IIS qui a des difficultés à exécuter deux pages Web actuellement, mais n'a pas trouvé . rien recherche sur le Web
SETUP: IIS 10 + Windows 10 Accueil + PHP 5.6