Code perso: balises spéciales

Résolu
Samiby Messages postés 118 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 2 janvier 2006 - 24 juil. 2004 à 14:55
Samiby Messages postés 118 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 2 janvier 2006 - 28 juil. 2004 à 10:13
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

WhiteDwarf Messages postés 510 Date d'inscription samedi 29 décembre 2001 Statut Membre Dernière intervention 23 mai 2008
24 juil. 2004 à 16:40
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
----------------------
3
Samiby Messages postés 118 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 2 janvier 2006
24 juil. 2004 à 16:52
Merci de ta réponse.
Je regarde tout de suite.
0
Samiby Messages postés 118 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 2 janvier 2006
24 juil. 2004 à 17:09
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.
0
winwarrior Messages postés 654 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 10 février 2009 1
28 juil. 2004 à 08:36
la fonction
preg_replace()
de php serait pas plus appropriée ?

@+

win
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Samiby Messages postés 118 Date d'inscription mercredi 26 novembre 2003 Statut Membre Dernière intervention 2 janvier 2006
28 juil. 2004 à 10:13
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 ?
0
Rejoignez-nous