Bonjour,
j’ai un script très simple : $contenu = file_get_contents('cible.php');
Mais comme dans cible.php il y a du code PHP, le contenu de $contenu
est (en gros) :
<?php $h = 'Salut'; ?>
<h1><?php echo $h; ?></h1>
Moi je veux que le code PHP soit d’abord interprété. Vous voyez le problème ?
Donc ma "solution" - qui marche en local - c’est de balancer l’adresse absolue (l’URL HTTP(s) complète quoi ).
Ce qui me donne : $contenu = file_get_contents('https://zestedesavoir.com/cible.php');
(c’est pas ZdS en vrai )
Ça "marche" en local.
Là où ça foire (maudit PHP… ou Apache) !
PROBLÈME : En remote, sur mon "vrai" serveur, le dossier comprenant cible.php est protégé par .htaccess
et donc seule mon IP a le droit d’y accéder. Du coup je tombe sur une erreur 403.
J’ai essayé d’ajouter 127.0.0.1 dans la liste des IPs autorisés (c’est pas une très bonne pratique, mais je suis un peu pressé lol :p) mais même là, ça marche pas. Toujours 403. Je comprends pas vraiment pourquoi d’ailleurs.
La seule manière de le faire fonctionner est de désactiver/ré-activer manuellement le .htaccess
à chaque fois que je veux lancer le script. Pas pratique mais ça permet de voir que c’est bien de là que viennent les 403, et ce malgré le 127.0.0.1 autorisé en principe.
Donc je me suis dit que ma "solution" initiale, mettre l’adresse absolue dans le file_get_contents
, n’était pas la bonne.
Retour à la case départ, j’aimerais pouvoir faire $contenu = file_get_contents('cible.php');
mais avoir le code de cible.php exécuté justement pour pas avoir de code PHP dans ma variable $contenu
.
Merci beaucoup pour votre aide,
PS: Une dernière chose, j’aimerais si possible éviter de passer par les include
/ require
. La raison est que le script et le fichier cible.php ont volontairement été simplifiés pour ce topic, mais en réalité ils contiennent beaucoup de code donc ça va être galère à faire. Je vois à peux prêt comment procéder, mais je cherche une alternative.
Merci encore !