Interpréter code php dans fichier contenant html et php en traitant le code

Contenu du snippet

Je cherchais comment exécuter un fichier .php contenant du html et du php

include();

Peut faire tout cela mais lorsque vient le temps de modifier seulement le code HTML contenu dans le fichier (exemple transformer des chaînes en d'autres) il faut avoir recours à

fopen(); , fread(); et echo();

pour afficher le code, mais là le code PHP dans le fichier à "afficher après traitement" n'est plus interprété.

Voilà ce que ma source fait :

-Elle ouvre le fichier à traiter
-Fait le traitement quelquonque (Par exemple mettre du bbcode...)
-Met le résultat dans un fichier temporaire avec la syntaxe : temp-[IP du visiteur]-[timestamp].php (de sorte qu'il soit unique)
-Inclu le fichier créé
-Supprime le fichier créé

Je ne sais pas s'il y a une façon plus simple de le faire mais celle-ci marche et c'est là seule à laquelle je suis parvenue après des heures d'essai ;)

Source / Exemple :


<?
$fichier="patate.php"; //patate.php est le fichier qui contient à la fois du code HTML et PHP
//Adresse temporaire ou sera stocké le fichier, ici vous devez avoir un réperoitre temps/ avec un CHMOD permettant l'écriture
$adressetemp="temps/temp-".$REMOTE_ADDR."-".time().".php"; //Done un résultat du style temp-69.70.201.53-1088224785.php
//Ouvre le fichier à inclure
$ouverture = fopen($fichier,"r+");
//Obtient la grosseur du fichier ouvert
$grosseur=filesize($fichier);
//Lit le fichier ouvert à l'aide de la grosseur et stocke la source dans la variable $code
$code = fread($ouverture,$grosseur);
//Fermer le fichier patate.php
fclose($ouverture);
//Créer le fichier temporaire
$nouveau=fopen($adressetemp,"w");
//Effectuer les traitement sur la source de la page ouverte ICI (But de la source)
$code=bbcode($code); //Exemple ici on fait passer la source de la page par la fonction bbcode();
//Écrire le nouveau code dans le fichier temporaire
fwrite($nouveau,$code);
//Fermer le fichier temporaire
fclose($nouveau);
//Inclure le fichier temporaire pour son exécution
include($adressetemp);
//Effacer le fichier temporaire
unlink($adressetemp);
?>

Conclusion :


Merci de me dire si il y a des simplifications possibles ou des bugs ou quoi que se soit ; )

Je suis pas un grand programmeur PHP mais je me débrouille

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.