Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[REGEXP] : Remplacer les valeurs decimales en hexa decimal

3 réponses
Avatar
Tek
Bonjour à tous,
j'aurais souhaité remplacer grace à une expression régulière
une série de valeur décimale leur équivalent en héxadécimal.

Par exemple:
[code]
$str = "xxx196xxxxxx125xxxx128xxxxxxxxx";
echo ereg_replace('([0-9]+)','#\1',$str);
[/code]
Ce qui donnes:
"xxx#196xxxxxx#125xxxx#128xxxxxxxxx"

Alors que j'aurais souhaité afficher:
"xxx#C4xxxxxx#7Dxxxx#80xxxxxxxxx"

J'ai évidemment essayé:
[code]
$str = "xxx196xxxxxx125xxxx128xxxxxxxxx";
echo ereg_replace('([0-9]+)','#' . dechex('\1'),$str);
[/code]
mais c'était trop beau et ça ne fonctionne pas.

La question est donc plus d'ordre général que relative
à cet exemple particulier. J'aurais souhaité remplacer
par lot une série de valeur grâce en passant par
l'utilisation d'une fonction dans une expression régulière.

Merci

--
M. Frédéric Saunier
Développeur Flash et PHP
www.tekool.net

3 réponses

Avatar
Stephane Pineau
Le 22 May 2004 13:31:10 GMT, Tek écrivait:

La question est donc plus d'ordre général que relative
à cet exemple particulier. J'aurais souhaité remplacer
par lot une série de valeur grâce en passant par
l'utilisation d'une fonction dans une expression régulière.


Regarde du côté de
$texte=preg_replace_callback($Match,"Nom_Fonction",$texte);

qui permet d'appeler "Nom_Fonction" en lui passant les différentes valeurs
trouvées par l'expression régulière pour un traitement particulier.

--
AcroDict : Dictionnaire francophone des acronymes informatiques
<URL:http://www.teaser.fr/~spineau/acrodict/index.htm>
PHP Page : Script PHP3 Gratuits (Forum, Gestionnaires BDD, etc..)
<URL:http://steph.pineau.free.fr/php/index.php>

Avatar
Tek
Le 22 May 2004 13:31:10 GMT, Tek écrivait:

La question est donc plus d'ordre général que relative
à cet exemple particulier. J'aurais souhaité remplacer
par lot une série de valeur grâce en passant par
l'utilisation d'une fonction dans une expression régulière.


Regarde du côté de
$texte=preg_replace_callback($Match,"Nom_Fonction",$texte);

qui permet d'appeler "Nom_Fonction" en lui passant les différentes
valeurs trouvées par l'expression régulière pour un traitement
particulier.


Superbe, je ne l'avais pas vu !
Merci beaucoup, je sens qu'elle va vite devenir mon amie.

--
M. Frédéric Saunier
Développeur Flash et PHP
www.tekool.net


Avatar
Stephane Pineau
Le 23 May 2004 00:57:30 GMT, Tek écrivait:

$texte=preg_replace_callback($Match,"Nom_Fonction",$texte);
...
Superbe, je ne l'avais pas vu !



Attention toutefois cette fonction n'est pas présente dans toutes les
versions de PHP (à prendre en compte pour un developpement distribué).

Sinon effectivement elle est très pratique, je l'utilise pour ma part pour
compléter tous les acronymes dans un texte par leur développement extrait
d'une base de données.
On peut de la même manière imaginer tout un tas de possiblités, comme
transformer automatiquement toutes les références à une marque par un lien
pointant sur le site stocké dans une base.

Cdlt,
Stéph'
--
AcroDict : Dictionnaire francophone des acronymes informatiques
<URL:http://www.teaser.fr/~spineau/acrodict/index.htm>
PHP Page : Script PHP3 Gratuits (Forum, Gestionnaires BDD, etc..)
<URL:http://steph.pineau.free.fr/php/index.php>