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.
Réponses:
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_start();
include "yourfile.php";
$myvar = ob_get_clean();
$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
$Vdata = file_get_contents('/path/to/your/file.php");
Si vous souhaitez charger le fichier sans l'exécuter via le serveur Web, ce qui suit devrait fonctionner.
$string = eval(file_get_contents("file.php"));
Cela chargera puis évaluera le contenu du fichier. Le fichier PHP devra être entièrement formé avec les balises <?php
et ?>
pour eval
pouvoir l'évaluer.
Théoriquement, vous pouvez simplement utiliser fopen, puis stream_get_contents.
$stream = fopen("file.php","r");
$string = stream_get_contents($stream);
fclose($stream);
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 ...
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.
Si votre fichier a une déclaration de retour comme celle-ci:
<?php return array(
'AF' => 'Afeganistão',
'ZA' => 'África do Sul',
...
'ZW' => 'Zimbabué'
);
Vous pouvez obtenir ceci dans une variable comme celle-ci:
$data = include $filePath;
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