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 8 960 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

jonguignolo
Messages postés
91
Date d'inscription
samedi 8 mars 2003
Statut
Membre
Dernière intervention
5 août 2010
-
Yop, heu désolé je comprend pas trop le but de ce qure tu as fait pourquoi tu ne parse pas ton fichier php en plusieur certe tu aura besoin de parser(couper) ton fichier en plusieur parti et de faire des echo mais ton script html sera toujours interpreter...
tu vois ce que je veu dire?
arff je sais pas si je suis trés clair ...
++
(c'est pas pour te casser c'est juste pour essayer de te simplifier la vie)
mathieumg
Messages postés
558
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
18 février 2006
-
J'ai essayé avant mais j'ai pas réussi (Comme je dis dans la source)

T'aurais pas une idée(apres avoir traité le contenu du fichier, le bbcode exemple...) comment afficher la source avec les bouts seulements php traités ?

Non je le prend pas mal, tous les commentaires sont constructifs :)

Mat
jonguignolo
Messages postés
91
Date d'inscription
samedi 8 mars 2003
Statut
Membre
Dernière intervention
5 août 2010
-
dsl je comprends pas ce terme de bbcode...
:(
PhPeteur
mathieumg
Messages postés
558
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
18 février 2006
-
Ben j'exécute n'importe quelle fonction qui modifie le code de la page exemple remplacer "allo" par "aurevoir"

$code=str_replace("allo","aurevoir",$code);

Mat
jonguignolo
Messages postés
91
Date d'inscription
samedi 8 mars 2003
Statut
Membre
Dernière intervention
5 août 2010
-
ok ok ok,
envoie moi un mail avec un exemple de ce que tu veu remplacer sa me parait bizzard ce que tu dit par rapport au html qui n'est pas interprété, je veu bien t'aider enfin essayer lol

PhPeteur

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.