J'ai besoin de charger un fichier PHP dans une variable. Commeinclude();
J'ai chargé un simple fichier HTML comme celui-ci:
$Vdata = file_get_contents("textfile.txt");
Mais maintenant, je dois charger un fichier PHP.
Je suppose que vous souhaitez obtenir le contenu généré par PHP , si c'est le cas, utilisez:
$Vdata = file_get_contents('http://YOUR_HOST/YOUR/FILE.php');
Sinon, si vous souhaitez obtenir le code source du fichier PHP , c'est le même qu'un fichier .txt:
$Vdata = file_get_contents('path/to/YOUR/FILE.php');
eval()
ou si vous avez affaire à du code plus compliqué: github.com/nikic/PHP-Parser .$Vdata = file_get_contents(get_template_directory_uri() . '/path/to/file/in/theme.text');
ob_get_clean ()
la source
$myvar = ob_get_clean();
(voir la documentation ob_get_clean )Si vous utilisez http: // , comme le suggère eyze, vous ne pourrez lire que la sortie du script PHP. Vous ne pouvez lire le script PHP lui-même que s'il se trouve sur le même serveur que votre script en cours d'exécution. Vous pouvez alors utiliser quelque chose comme
la source
Si vous souhaitez charger le fichier sans l'exécuter via le serveur Web, ce qui suit devrait fonctionner.
Cela chargera puis évaluera le contenu du fichier. Le fichier PHP devra être entièrement formé avec les balises
<?php
et?>
poureval
pouvoir l'évaluer.la source
Théoriquement, vous pouvez simplement utiliser fopen, puis stream_get_contents.
Cela devrait lire le fichier entier dans la chaîne $ pour vous, et ne devrait pas l'évaluer. Bien que je sois surpris que file_get_contents ne fonctionne pas lorsque vous avez spécifié le chemin local ...
la source
Vous pouvez également démarrer la mise en mémoire tampon de la sortie, effectuer une inclusion / demande, puis arrêter la mise en mémoire tampon. Avec ob_get_contents (), vous pouvez simplement récupérer le contenu généré par cet autre fichier PHP dans une variable.
la source
Si votre fichier a une déclaration de retour comme celle-ci:
Vous pouvez obtenir ceci dans une variable comme celle-ci:
la source
file_get_contents () ne fonctionnera pas si votre serveur a désactivé allow_url_fopen . La plupart des hébergeurs Web partagés l'ont désactivé par défaut en raison de risques de sécurité. Aussi, en PHP6 , le allow_url_fopen option n'existera plus et toutes les fonctions agiront comme si elle était désactivée de manière permanente. C'est donc une très mauvaise méthode à utiliser.
La meilleure option à utiliser si vous accédez au fichier via http est cURL
la source