|
Dernière réponse | |
---|---|
Sujet : [PHP] J'ai une colle, le premier qui trouve ... | |
Zapco | Pour ceux que ca interesse, voici comment générer un fichier static à partir d'un fichier dynamic en PHP3 avec un seul serveur :
<?php $fichier_source = "index.php3"; $fichier_destination = "toto.php3"; //recupération du contenu du fichier source $php_source = " ".implode("", file($fichier_source)); //recherche des balise d'ouverture php $pos_debut[0] = 0; for ($i=0; strpos($php_source, '<?php', $pos_debut[$i]+1); $i++) { $pos_debut[$i+1] = strpos($php_source, '<?php', $pos_debut[$i]+1); } //recherche des balise de fermeture php $pos_fin[0] = 0; for ($i=0; strpos($php_source, '?>', $pos_fin[$i]+1); $i++) { $pos_fin[$i+1] = strpos($php_source, '?>', $pos_fin[$i]+1); } //le nombre de balise d'ouverture doit être égal au nombre de balise de fermeture if (sizeof($pos_debut)<>sizeof($pos_fin)) { echo "il manque une balise php"; exit; } //contruction d'une chaine 100% PHP $PHP=""; $fin = -2; for($i=1; $i<sizeof($pos_debut); $i++) { $deb = $pos_debut[$i]; //convertie les partie HTML du fichier source en php $PHP .= 'echo "' . addslashes(substr($php_source, $fin+2, $deb-$fin-2)) . '";'; //ajoute les parties php sans les balises $fin = $pos_fin[$i]; $PHP .= substr($php_source, $deb+6 , $fin-$deb-6); } //on remplace les echo par une chaine de caractère qu'on initialise $PHP = '$HTML="";' . str_replace("echo", '$HTML .= ', $PHP); //on execute la chaine $PHP eval($PHP); //on ouvre et on remplie le fichier de destination et on le ferme if(!($fichier_destination = fopen($fichier_destination,"w" ))) { echo "Probleme lors de l'ouverture d'un fichier"; exit; } fputs($fichier_destination, $HTML); fclose($fichier_destination); echo "fichier généré"; ?> Merci à tous ceux qui m'ont aidé |
Vue Rapide de la discussion |
---|