OVH Cloud OVH Cloud

caractere

3 réponses
Avatar
Thierry B
Bonjour,
comment faire des remplacements de caractere, en php?
Car la fonction str_replace remplace une chaine, en une autre chaine mais si
je veux juste remplacer une lettre par une autre lettre, que puis-je faire?

Merci.
A bientot

3 réponses

Avatar
Stephane Pineau
Le 20 May 2004 04:28:49 GMT, Thierry B écrivait:

comment faire des remplacements de caractere, en php?
Car la fonction str_replace remplace une chaine, en une autre chaine mais si
je veux juste remplacer une lettre par une autre lettre, que puis-je faire?


Sujet déjà maint fois abordé les jours passés dans ce groupe... Penser à
lire avant de poster.

Sinon :

1) str_replace peut très bien faire du remplacement caractères par
caractères en passant un array() de caractères au lieu d'une chaine en tant
que paramètres

2) la fonction strtr est la plus appropriée

3) voir la doc pour plus de précisions.

Cdls,
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>

Avatar
helen
Thierry B a écrit:
Bonjour,
comment faire des remplacements de caractere, en php?
Car la fonction str_replace remplace une chaine, en une autre chaine mais si
je veux juste remplacer une lettre par une autre lettre, que puis-je faire?

Merci.
A bientot


Si ça peut t'aider, et grâce à l'aide trouvée ici même, sur ce forum, un
tout petit script qui remplace les lettres accentuées par des lettres
sans accents :

<?php

$mot=$argv[1];

function Noaccents($mot)
{

$search=array("a","â","à","é","è","ê","ë","î","ï","ô","ù","ü","û","ç");
$replace=array("a","a","a","e","e","e","e","i","i","o","u","u","u","c");

$result=str_replace($search,$replace,$mot);
return $result;
}

echo Noaccents($mot),"n";

?>
Tu dois pouvoir adapter ça à ton besoin de remplacement d'une seule lettre.
Hélène

Avatar
Armel FAUVEAU
Bonsoir,

Si ça peut t'aider, et grâce à l'aide trouvée ici même, sur ce forum, un
tout petit script qui remplace les lettres accentuées par des lettres
sans accents :


Alors il y a une syntaxe plus simple (et sans doute plus esthétique) Hélène,
si le but est uniquement de dégager les accents. Elle repose sur
l'utilisation de la fonction strtr(). Exemple :

<?php
$chaine="C'était l'été dernier après Noël";
echo strtr($chaine, 'éèë', 'eee');
?>

Il peut être pratique d'en faire une fonction plus générale et la coller
quelques part. Bref, un truc genre :

function delete_accent($chaine) {
return(strtr($chaine,
'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ',
'AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn')
);
}

Voir la doc : http://fr2.php.net/strtr

Armel.