Modification dans des tags (expressions régulières)

Modification dans des tags (expressions régulières) - PHP - Programmation

Marsh Posté le 21-06-2007 à 14:12:15    

Bonjour,
 
Je me bats depuis pas mal d'heures avec les regexp, voici mon probleme :
 
J'ai une chaine avec plusieurs :
 
http://www.monsite.com/nom_image.gif
 
Et je dois remplacer chaque occurence avec ca :
 
<img src="http://www.monsite.com/nom_image.gif" align="alignement" border="0">
 
où alignement represente right, left ou center
 
 
 
Merci a ceux qui pourront m'aider ou m'aiguiller.
 
Martin

Reply

Marsh Posté le 21-06-2007 à 14:12:15   

Reply

Marsh Posté le 21-06-2007 à 14:18:45    

ok et t'en es ou pour l'instant? Fais voir ta regex sinon ça va pas être facile!
 

Spoiler :

sinon tu as déjà pleins de fonctions de conversion type bb-code à dispo sur le net, ça irait ptêt plus vite :o

Reply

Marsh Posté le 21-06-2007 à 16:49:47    

Bé, j'ai tellement fait d'essais que je ne sais plus où j'en suis.

Reply

Marsh Posté le 21-06-2007 à 16:57:12    

prends n'importe lequel et dis nous ce qui allait pas avec!

Reply

Marsh Posté le 21-06-2007 à 18:02:58    

Voilà, j'avais trouvé ça :
 

Spoiler :

<?php
function bbcode($m) {
    switch($m[1]) {
        // balise <code>
        case 'code' :
           return '<div class="code"><pre>'.htmlentities($m[2]).'</pre></div>';  
        break;
        // balise <url>
        case 'url' :
          if (preg_match ('`^http://`', $m[2]))
            return '<a href="'.$m[2].'" class="machin">'.$m[2].'</a>';
          else
            return '<a href="http://'.$m[2].'" class="machin">'.$m[2].'</a>';  
        break;
        // balsie <img>
        case 'img' :
        return '<img src="'.$m[2].'" align="alignement"/>';
    }
}
$str = "mon site web préféré est: http://www.laboiteaprog.com/img/logo.png";
$str = preg_replace_callback('`\[(code|url|img)\](.+?)\[/\1\]`si', 'bbcode', $str);
 
echo $str;
 
?>


 
Ca marche nickel, mais dans le texte j'ai des [img align="alignement"]...
 
Il faudrait donc que je récupère en plus la valeur de 'alignement', le résultat final devrait être :
 
<img src="http://www.laboiteaprog.com/img/logo.png" align="alignement">

Reply

Marsh Posté le 21-06-2007 à 18:06:56    

Zut une ligne a été interprétée :
 
la variable $str est :
 
$str = "mon site web préféré est: (img)http://www.laboiteaprog.com/img/logo.png(/img)";
 
Remplacer les '()' par des '[]'

Reply

Marsh Posté le 21-06-2007 à 18:08:14    

Enfin plutôt :
 
$str = "mon site web préféré est: (img align="alignement" )http://www.laboiteaprog.com/img/logo.png(/img)";

Reply

Marsh Posté le 22-06-2007 à 11:44:54    

Résolu.

Reply

Sujets relatifs:

Leave a Replay

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