mb_ereg_replace ajouter l'icône PDF

mb_ereg_replace ajouter l'icône PDF - PHP - Programmation

Marsh Posté le 18-11-2011 à 22:49:41    

Bonjour à tous,
 
Je voudrais scanner les URL d'un string UTF8, et ceux qui pointent vers un PDF, ajouter une petit icône PDF ( une icone ZIP pour les ZIP, et une icône extérieur pour les autres).
 
Pour ça, j'ai écris ces expressions régulière :

Code :
  1. //ajout de l'icône PDF pour les PDF :
  2. $contenuARetraiter = mb_ereg_replace ('(<a href=" )(.*)(\.pdf"> ){1}(.*)(</a> )', '\1\2\3\4\5 <img src="images/pdf.gif"/>', $contenuARetraiter);
  3. //ajout de l'icône ZIP pour les ZIP :
  4. $contenuARetraiter = mb_ereg_replace ('(<a href=" )(.*)(\.zip"> )(.*)(</a> )', '\1\2\3\4\5 <img src="images/icone_zip.gif"/>', $contenuARetraiter);


 
Mais ça se comporte bizzarement.
J'ai mis dans le string la chaine suivante :
 

Code :
  1. <a href="http://127.0.0.1/myca/test/article_print.ajax.php">http://127.0.0.1/myca/test/article_print.ajax.php</a>
  2. <a href="http://127.0.0.1/myca/test/article_print.ajax.pdf">http://127.0.0.1/myca/test/article_print.ajax.pdf</a>
  3. <a href="http://127.0.0.1/myca/test/article_print.ajax.zip">http://127.0.0.1/myca/test/article_print.ajax.zip</a>
  4. <a href="http://127.0.0.1/myca/test/article_print.ajax.pdf">http://127.0.0.1/myca/test/article_print.ajax.pdf</a>


 
et l'application du code ci-dessus donne ça en retour :

Code :
  1. <a href="http://127.0.0.1/myca/test/article_print.ajax.php">http://127.0.0.1/myca/test/article_print.ajax.php</a>
  2. <a href="http://127.0.0.1/myca/test/article_print.ajax.pdf">http://127.0.0.1/myca/test/article_print.ajax.pdf</a>
  3. <a href="http://127.0.0.1/myca/test/article_print.ajax.zip">http://127.0.0.1/myca/test/article_print.ajax.zip</a>
  4. <a href="http://127.0.0.1/myca/test/article_print.ajax.pdf">http://127.0.0.1/myca/test/article_print.ajax.pdf</a> <img src="images/icone_zip.gif"> <img src="images/pdf.gif">


 
Il y a quelque chose qui l'empêche de capturer le 1er PDF. Je pense que l'expression régulière trouve le début du <a href de la première ligne, et le pdf de la quatrième.
 
Vous auriez une idée de comment lui faire comprendre ?

Reply

Marsh Posté le 18-11-2011 à 22:49:41   

Reply

Marsh Posté le 19-11-2011 à 21:14:08    

Le plus rigolo, c'est que si je tente ça :
 

Code :
  1. $contenuARetraiter = preg_replace ('/(<a href=" )(.*)(\.pdf"> ){1}(.*)(<\/a> )/', '\\0 <img src="images/pdf.gif"/>', $contenuARetraiter);


 
il me trouve une seule URL avec un PDF alors qu'il y en a plusieurs, mais si je met ça :
 

Code :
  1. $contenuARetraiter = preg_replace ('/(<a href=" )([\w\.\/\-]*)(\.pdf"> ){1}(.*)(<\/a> )/', '\\0 <img src="images/pdf.gif"/>', $contenuARetraiter);


 
il met pas d’icône du tout !
 
et ça autant avec preg_replace que mb_ereg_replace
 
Il y a un truc que j'ai pas dû comprendre !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed