Code perso: balises spéciales

[Résolu]
Signaler
Messages postés
118
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
2 janvier 2006
-
Messages postés
118
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
2 janvier 2006
-
Bonjour,

Je programme actuellement un blog, et pour poster des lessages, j'ai créé un code personnalisé.
J'ai un prblème avec les images.
La syntaxe de ma balise est : [image adresse="http://(url)"]Description de l'image/image
Je voudrais donc transformer ceci en :
En utilisant une expression réguilère ($texte contient le message à parser):
texte = eregi_replace("\[image adresse="([a-z0-9./+%?&=-]+)"\](.+)\/image\","",$texte);

Bon, j'ai simplifié les expressions pour ne garder que ce sui est intéressant.
Le problème est lorsqu'il y a plusieurs images.
prenonse un exemple de texte:
texte bla bla
[image adresse="http://www.phpcs.com/gfx/logos/logophp.gif"]description de l'image 1/image
texte encore
[image adresse="http://afterend.com/forum/style_images/1/logo.jpg"]Description de l'image 2/image

avec la fonction, ça renverra:
texte bla bla


Savez-vous comment faire ?

Merci d'avance :)

5 réponses

Messages postés
510
Date d'inscription
samedi 29 décembre 2001
Statut
Membre
Dernière intervention
23 mai 2008

str_replace("[image adresse","<img src",$texte);
... ect en gros tu te sert de cette fonction

----------------------
La lumière étant plus rapide que le son, un homme peu paraître brillant avant qu'il se mette a parler
[http://www.laxis.net [Laxis]]WhiteDwarf
----------------------
Messages postés
118
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
2 janvier 2006

Merci de ta réponse.
Je regarde tout de suite.
Messages postés
118
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
2 janvier 2006

C'est bon, ça marche. Merci beaucoup pour ton aide.
Pour ceux que ça intéresse, voici la fonction que j'utilise :

function img_explore( $texte ){
$occurences = explode( "[image" , $texte );
$texte = $occurences[0];
for( $i = 1; $i < count($occurences); $i++ ){
$texte_part = "" , $texte_part ); 
}
return $texte;
}


Elle a quelques défauts à corriger (pris en compte des différents protocoles, optimisation, ...), mais elle fonctionne.
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
la fonction
preg_replace()
de php serait pas plus appropriée ?

@+

win
Messages postés
118
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
2 janvier 2006

Oui, j'ai plusieurs fois entendu que c'était plus rapide.
Je reposte ma fonction car je l'ai modifiée.

function img_explore5( $texte ){
$occurences = explode( "[image" , $texte );
$texte_ret = $occurences[0];
for( $i = 1; $i < count($occurences); $i++ ){
eregi( "adresse="(http://)?([a-z0-9:./+%_; ?&-]+)"\]([^[]+)\/image\" , $occurences[$i] , $elements );
$fin = substr( $occurences[$i] , strlen( $elements[0] )+1 );
if( isset($elements) ){
$texte_part = "" . $fin;
} else {
$texte_part = "[image " . $occurences[$i];
}
$texte_ret .= $texte_part;
}
return $texte_ret;
}


J'ai laissé les eregi. y a-t-il une fonction preg qui ne tient pas compte de la casse ?