7
votes

File_Get_Contents et code PHP

Bonjour Y a-t-il un moyen de prendre le contenu d'un fichier PHP lors du traitement du code PHP? J'ai besoin d'inclure un code dans une autre page, mais j'ai besoin d'imprimer le contenu dans une position spécifique.

Si j'utilise Inclure le code sera imprimé avant que la balise HTML de bien sûr, car elle soit traitée avant la page, mais si j'utilise File_Get_Contents, le contenu est pris dans la page, mais si j'ai des tags php, je vais les faire aussi comme texte clair.

merci.

Edit: Les gars désolés semblent que j'étais saoul pendant que j'écris. J'ai corrigé.

J'ai un moteur qui traite le contenu de la page, les met dans une variable puis imprimez-les dans une position spécifique dans la page HTML. Dans le moteur, j'ai besoin de "incorporer" le code d'autres pages "statiques" qui pourraient avoir des balises PHP. Si j'utilise FILE_GET_CONTENTS, je vais obtenir le contenu en tant que texte brut (avec des balises PHP non analysées) si j'utilise incluse, cela ne fonctionnera pas car ce n'est pas la fonction pour cela. Donc, ce dont j'ai besoin, c'est d'intégrer le code traité dans le moteur (en tant que HTML imprimé prêt à être imprimé).


3 commentaires

Pouvez-vous clarifier ce que vous voulez et pourquoi un inclure () à l'aide d'un chemin de fichier de fichiers ne fonctionnera pas pour vous? Je ne comprends pas.


Pouvez-vous rehrasser? Je ne comprends pas vraiment ce que tu dis.


Merci pour la clarification. J'ai supposé correctement dans ma réponse.


3 Réponses :


23
votes

Vous pouvez utiliser un tampon de sortie pour inclure un fichier PHP mais enregistrer la sortie résultante pour une utilisation ultérieure à la place de l'impression. il immédiatement au navigateur.

ob_start();
include('path/to/file.php');
$output = ob_get_contents();
ob_end_clean();

// now do something with $output


4 commentaires

Je ne sais pas que ceci est de savoir si ce qu'il a besoin, comme il semble de vouloir le code source PHP ... pas clair quoi il a besoin


Il dit: "Si j'utilise FILE_GET_Contents, le contenu est pris, mais si j'ai des tags de PHP, je vais les faire aussi comme un texte brut", ce qui indique que c'est ce qu'il tente de faire.


J'ai découvert que vous pouvez simplement utiliser $ sortie = ob_get_clean () , combinez les étapes d'obtention et de nettoyer ensemble


Exactement ce que je cherchais! J'ai eu un fichier PHP qui inclut la logique d'application mélangée à des modèles HTML (UGH) qui devaient être mis à jour avant d'être envoyé au navigateur. Fonctionne magnifiquement.



-1
votes

Votre question n'est pas 100% claire, mais on dirait que vous souhaitez inclure une source PHP à distance, vous pouvez utiliser Inclure ("http://domain.com/path/to/php.phps"); au lieu d'un fichier_get_contents.

Vous avez dit que vous avez juste besoin d'une partie du code distant, si c'est que, vous pouvez utiliser le fichier_get_contents, obtenez cette partie du code avec SUBSTR ou REG EXP Enregistrer sur un fichier local et inclure ou faire un eval. < / p>

Aucune des solutions n'est sécurisée ni recommandée, vous ne devez jamais inclure des fichiers distants à une évaluation directe de votre code.


0 commentaires

-1
votes

Si je comprends bien correctement; Vous essayez de charger un fichier PHP pour lire son contenu et l'exécuter en même temps.

IE: inclure ('/ foo / bar') code> et file_get_contents ('/ foo / bar') code> p>

La fonction suivante fait les deux et renvoie le contenu du fichier en supposant qu'il existe. p>

if($file_contents = load_and_process('/foo/bar')) {
    echo "Loaded $file_contents from /foo/bar";
}


0 commentaires