cs_Metaldark
Messages postés31Date d'inscriptionvendredi 22 août 2003StatutMembreDernière intervention26 juillet 2007
-
20 juin 2006 à 18:14
J_G
Messages postés1406Date d'inscriptionmercredi 17 août 2005StatutMembreDernière intervention28 août 2007
-
22 juin 2006 à 19:13
Salut ! [;)]
Bon, j'explique mon problème : j'ai fait un script qui gere des templates et génére des pages html statiques.
Par exemple, le template est :
<html>
<head>
{head}
</head>
Pourquoi pas un titre?
{body}
</html>
Et je remplace {head} et {body} par des valeurs et je génére la page statique.
Ensuite je veux pouvoir récupérer ce qu'est {head} et {body} dans une page déja générée... le problème c'est que le template peut changer (il peut y avoir des trucs fixes du genre le titre h1 que j'ai mis)
Donc ma question est : comment récupérer ces valeurs
Note : j'ai toujours le template de base, donc peut etre faire une comparaison... mais je sais pas comment faire xD
cs_Metaldark
Messages postés31Date d'inscriptionvendredi 22 août 2003StatutMembreDernière intervention26 juillet 2007 21 juin 2006 à 17:57
$file = file_get_contents("index.html"); => d'accord c'est plus simple, lisible, efficace :)
$pos1 = strpos($file, "<!--content-->") + strlen('<!--content-->'); je comprend pa s l'intérêt de cet ajout... d'autant plus que avec ou sans sa me sort la même chose :o
J_G
Messages postés1406Date d'inscriptionmercredi 17 août 2005StatutMembreDernière intervention28 août 200710 22 juin 2006 à 17:19
Salut,
je ne suis pas persuadé du bon fonctionnement de cette expression régulière...
$rest = preg_replace('`(.+?)\<!--content-->(.+?)\<!--/content-->(.+?)`si', '$2', $file )
pour les raisons suivantes :
* il manque un ^ au début pour signifier "depuis le début de la chaine"
* idem avec un $ à la fin
* '+?' ...? Tu voulais dire '*'
* Pourquoi un \ devant les <!-- ?
* '$2', peut-être mieux avec '\2'
Donc j'opterais plutot pour :
$rest = preg_replace('`^.*<!--content-->(.*)<!--/content-->.*$`si', '\1', $file )
Sinon, effectivement ça peut marcher et effectivement, c'est bien de montrer qu'il y a toujours plusieurs méthodes pour arriver au même résultat.
Mais, même si c'est élégant de faire tenir cette opération en un ligne, je trouve surdimensionner l'utilisation d'expression régulière et, surtout, du remplacement pour une telle opération. La méthode des substr-strpos-strlen est à coup sûr beaucoup plus rapide à l'exécution...