Expression régulière PHP
Résolu
guewini
-
guewini -
guewini -
Bonjour,
Je souhaiterai utiliser la fonction ereg_replace ou preg_replace (je n'en sais trop rien) afin d'arriver au résultat suivant :
Chaine d'origine : [img='url_img']texte alternatif[ /img]
Chaine finale : <img src="url_img" alt="texte alternatif" />
Je n'entrave pas grand chose aux expressions régulière et encore moins à la syntaxe à base de \\x de la chaine de remplacement des fonctions ereg_replace ou preg_replace.
Si quelqu'un peut m'apporter ses lumières je lui en serait reconnaissant
Merci d'avance
Je souhaiterai utiliser la fonction ereg_replace ou preg_replace (je n'en sais trop rien) afin d'arriver au résultat suivant :
Chaine d'origine : [img='url_img']texte alternatif[ /img]
Chaine finale : <img src="url_img" alt="texte alternatif" />
Je n'entrave pas grand chose aux expressions régulière et encore moins à la syntaxe à base de \\x de la chaine de remplacement des fonctions ereg_replace ou preg_replace.
Si quelqu'un peut m'apporter ses lumières je lui en serait reconnaissant
Merci d'avance
A voir également:
- Expression régulière PHP
- Easy php - Télécharger - Divers Web & Internet
- Expression écrite cm1 cm2 télécharger gratuit - Télécharger - Éducatifs
- Microsoft expression encoder - Télécharger - Divers Utilitaires
- Expert php pinterest - Télécharger - Langages
- Php alert ✓ - Forum PHP
5 réponses
Bonjour Guewini,
Voila avec le PCRE "preg_replace" :
$texte est la chaine à traiter.
$texte_final = preg_replace('`\[img=\'(.+)\'\](.+)\[ /img\]`', '<img src="$1" alt="$2" />', $texte);
Voila avec le PCRE "preg_replace" :
$texte est la chaine à traiter.
$texte_final = preg_replace('`\[img=\'(.+)\'\](.+)\[ /img\]`', '<img src="$1" alt="$2" />', $texte);
Merci beaucoup, effectivement ca marche :D il s'agit maintenant que je comprenne pourquoi xD
Si je comprends bien les antislashs échappent les crochets (qui sont utilisés dans les expressions régulières) mais je ne comprend pas trop l'utilisation de l'accent grave (altgr + 7)
Si je comprends bien les antislashs échappent les crochets (qui sont utilisés dans les expressions régulières) mais je ne comprend pas trop l'utilisation de l'accent grave (altgr + 7)
Heu et encore une petite question :
Par quoi faut-il que je remplace le .+ pour qu'en cas d'absence de texte alternatif ([img='url_img'][ /img]) cela marche encore ?
Par quoi faut-il que je remplace le .+ pour qu'en cas d'absence de texte alternatif ([img='url_img'][ /img]) cela marche encore ?
Re,
Alors l'accent grave c'est le délimiteur, il est libre mais ce ne doit pas être un métacaractère sinion il y aura le joli message d'erreur 'No ending delimiter found' ou 'Delimiter must be not alphanumeric or backslash'
Pour que cela fonction sans text alternatif, il faut utiliser ça :
preg_replace('`\[img=\'(.+)\'\](.+|)\[ /img\]`', '<img src="$1" alt="$2" />', $texte);
(.+|) au lieu de (.+) et dans ce cas la valeur de alt est nulle.
Pour plus d'informations sur les regex : http://www.expreg.com/index.php
Alors l'accent grave c'est le délimiteur, il est libre mais ce ne doit pas être un métacaractère sinion il y aura le joli message d'erreur 'No ending delimiter found' ou 'Delimiter must be not alphanumeric or backslash'
Pour que cela fonction sans text alternatif, il faut utiliser ça :
preg_replace('`\[img=\'(.+)\'\](.+|)\[ /img\]`', '<img src="$1" alt="$2" />', $texte);
(.+|) au lieu de (.+) et dans ce cas la valeur de alt est nulle.
Pour plus d'informations sur les regex : http://www.expreg.com/index.php
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question