par
entomokiller » 07 avr. 2012, 03:06
bonjour, je suis en ce moment en train d'aprendre à me servir du html5 et je traite mon html pour passer du 4.1 au 5. et j'ai un gros probleme avec preg_replace, si quelqu'un a une idée...
<?php
// donc je cré un article, avec un entete et 2sections, une pour les paragraphes et une pour les annotations
$content = '
<article>
<header>
<h4>LE VIEIL HOMME ET LA MER, (<i>extrait</i>)</h4>
</header>
<section>
<p>Il était une fois un vieil homme, tout seul dans son bateau, qui pêchait au milieu du Gulf Stream. En quatre-vingt-quatre jours, il n\'avait pas pris un poisson. Les quarante premiers jours, un jeune garçon l\'accompagna ; mais au bout de ce temps, les parents du jeune garçon déclarèrent que le vieux était décidément et sans remède salao, ce qui veut dire aussi guignard qu\'on peut l\'être. On embarqua donc le gamin sur un autre bateau, lequel, en une semaine, ramena trois poissons superbes.</p>
<p>Chaque soir le gamin avait la tristesse de voir le vieux rentrer avec sa barque vide. Il ne manquait pas d\'aller à sa rencontre et l\'aidait à porter les lignes serrées en spirales, la gaffe, le harpon, ou la voile roulée autour du mât. La voile était rapiécée avec de vieux sacs de farine ; ainsi repliée, elle figurait le drapeau en berne de la défaite.</p>
<p>Le vieil homme était maigre et sec, avec des rides comme des coups de couteau sur la nuque. Les taches brunes de cet inoffensif cancer de la peau que cause la réverbération du soleil sur la mer des Tropiques marquaient ses joues ; elles couvraient presque entièrement les deux côtés de son visage ; ses mains portaient les entailles profondes que font les filins au bout desquels se débattent les lourds poissons. Mais aucune de ces entailles n\'était récente : elles étaient vieilles comme les érosions d\'un désert sans poissons. </p>
</section>
<section>
<div>~ ERNEST HEMINGWAY ~</div>
</section>
</article>';
// je fait ma preg, normalement dans une boucle qui récupere toute mes balises
// j'ai ajouté [^<] pour qu'il ne s'arrete qu'à la prochaine balise de fermeture complete
// et m pour le multi lignes
// mais sans résultat...
$content = preg_replace("~^(<section>)([^<]*[.*])(</section>)$~m","",$content);
// j'affiche $content
echo $content;
?>
bonjour, je suis en ce moment en train d'aprendre à me servir du html5 et je traite mon html pour passer du 4.1 au 5. et j'ai un gros probleme avec preg_replace, si quelqu'un a une idée...
[php]
<?php
// donc je cré un article, avec un entete et 2sections, une pour les paragraphes et une pour les annotations
$content = '
<article>
<header>
<h4>LE VIEIL HOMME ET LA MER, (<i>extrait</i>)</h4>
</header>
<section>
<p>Il était une fois un vieil homme, tout seul dans son bateau, qui pêchait au milieu du Gulf Stream. En quatre-vingt-quatre jours, il n\'avait pas pris un poisson. Les quarante premiers jours, un jeune garçon l\'accompagna ; mais au bout de ce temps, les parents du jeune garçon déclarèrent que le vieux était décidément et sans remède salao, ce qui veut dire aussi guignard qu\'on peut l\'être. On embarqua donc le gamin sur un autre bateau, lequel, en une semaine, ramena trois poissons superbes.</p>
<p>Chaque soir le gamin avait la tristesse de voir le vieux rentrer avec sa barque vide. Il ne manquait pas d\'aller à sa rencontre et l\'aidait à porter les lignes serrées en spirales, la gaffe, le harpon, ou la voile roulée autour du mât. La voile était rapiécée avec de vieux sacs de farine ; ainsi repliée, elle figurait le drapeau en berne de la défaite.</p>
<p>Le vieil homme était maigre et sec, avec des rides comme des coups de couteau sur la nuque. Les taches brunes de cet inoffensif cancer de la peau que cause la réverbération du soleil sur la mer des Tropiques marquaient ses joues ; elles couvraient presque entièrement les deux côtés de son visage ; ses mains portaient les entailles profondes que font les filins au bout desquels se débattent les lourds poissons. Mais aucune de ces entailles n\'était récente : elles étaient vieilles comme les érosions d\'un désert sans poissons. </p>
</section>
<section>
<div>~ ERNEST HEMINGWAY ~</div>
</section>
</article>';
// je fait ma preg, normalement dans une boucle qui récupere toute mes balises
// j'ai ajouté [^<] pour qu'il ne s'arrete qu'à la prochaine balise de fermeture complete
// et m pour le multi lignes
// mais sans résultat...
$content = preg_replace("~^(<section>)([^<]*[.*])(</section>)$~m","",$content);
// j'affiche $content
echo $content;
?>
[/php]