8797 sujets

Développement web côté serveur, CMS

Bonjour,

J'utilise actuellement le module tinymce ( pour mon client... )
Et il se trouve que j'ai besoin d'extraire les liens que celui-ci peut avoir a mettre sur sa page...
Ils sont de la forme
<a href="index.php?page=LIEN"><span .....>TEXTE</span></a>
( le span n'est pas forcement la...)

Et j'aimerai récupérer le LIEN et le TEXTE... et ce pour toute ma page...

Je ne suis pas du tout familier des expressions regulieres... j'ai essayer pourtant ^^
Je suis parvenu a extraire pas mal de choses ( avec preg_match_all et explode... c'est mauvais...)
Mais j'ai un probleme avec les span qui sont de temps en temps la... de temps en temps non...
Bref je sollicite votre aide ^^

Merci d'avance.
Modifié par Killion (05 Jun 2008 - 09:17)
Salut Killion Smiley cligne ,

il me semble que tu te simplifierais la vie avec strip_tags. Par exemple :
<?php
$pattern = '#<a [^>]+page=([^&"]*?).*>(.*)</a>#iU';
$str = 'sfsfd<a href="index.php?page=LIEN1&hghjg=jhghj"><span .....>TEXTE1</span></a>kljhkj<a href="index.php?machin=bidule&page=LIEN2">TEXTE2</a>fqsfd<A href="index.php?page=LIEN3"><span .....>TEXTE3</span></a>kl';
preg_match_all($pattern, $str, $out);
for ($i = 0; $i < count($out[0]); $i++) {
	echo 'Lien : '.$out[1][$i]."\t	=> Texte : ".strip_tags($out[2][$i])."<br />\n";
}
?>

A+


Edit: après avoir fait un tour sur ce tuto de mediabox une seconde version sans strip_tags Smiley murf
<?php
$pattern = '#<a [^>]+page=([^&"]*?).*>(?:<span.*>)?(.*)(?:</span>)?</a>#iU';
$str = 'sfsfd<a href="index.php?page=LIEN1&hghjg=jhghj"><span .....>TEXTE1</span></a>kljhkj<a href="index.php?machin=bidule&page=LIEN2">TEXTE2</a>fqsfd<A href="index.php?page=LIEN3"><span .....>TEXTE3</span></a>kl';
preg_match_all($pattern, $str, $out);
for ($i = 0; $i < count($out[0]); $i++) {
	echo 'Lien : '.$out[1][$i]."\t	=> Texte : ".$out[2][$i]."<br />\n";
}
?>

Modifié par Heyoan (05 Jun 2008 - 07:36)
Merci infiniment pour cette réponse rapide et qui m'a permis de finalisé mon script ^^
Merci beaucoup