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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 054 fois - Téléchargée 29 fois

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

Ajouter un commentaire

Commentaires

Messages postés
73
Date d'inscription
dimanche 8 juin 2003
Statut
Membre
Dernière intervention
8 mars 2005

oui, on pourrait se recontacter par email, ok?
Messages postés
558
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
18 février 2006

Merci !

En passant salut Samirog =) Sa fait un bout ;)

Toujours vivant ? :P

Mat
Messages postés
73
Date d'inscription
dimanche 8 juin 2003
Statut
Membre
Dernière intervention
8 mars 2005

c'est pas mal, j'aime bien j'vais y mettre 8


Sam
Messages postés
558
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
18 février 2006

Merci :)

Mat
Messages postés
45
Date d'inscription
vendredi 25 juin 2004
Statut
Membre
Dernière intervention
5 septembre 2004

A priori ob_start ne prend qu'une fonction en argument, et le contenu du buffer sera passé comme argument de ladite fonction. Donc il faut faire une fonction générale qui contient les appels à toutes les autres, je pense.

FReD
Afficher les 17 commentaires

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.