TUTOS.EU

Modifier des chaines de caractères en PHP

Comment modifier du texte en PHP

Retirer les premiers caractères

Pour supprimer les premiers caractères d'une chaine, il faut utiliser la fonction substr

On indique en second paramètre le numéro du premier caractère à conserver.

Son numéro est de base 0, cad que le premier a le numéro 0.

En VbScript on est en base 1, cad que le premier est désigné par le numéro 1

Aussi substr("Toto",1) devient Mid("Toto",2)

$MaVariable = substr($MaVariable,1); //Ici on retire le premier caractère
Lien vers le fichier : cliquez ici Copier le code

Retirer les derniers caractères

Pour retirer les derniers caractères, il faut utiliser une valeur négative au niveau du 3ème paramètre de la fonction substr

Ainsi avec -1 en 3ème paramètre pour "Toto", on obtiendra "Tot"

$Mavariable = substr($Mavariable,0,-1);
Lien vers le fichier : cliquez ici Copier le code

Pour remplacer une chaîne de caractères avec une autre en PHP on peut utiliser la fonction str_replace qui est à préférer par rapport à strtr.
On lui fourni le caractère recherché, son remplaçant puis la chaîne/variable à traiter.
Un dernier paramètre permet de placer une variable qui contiendra le nombre de remplacements effectués.
str_replace. est l'équivalent de la fonction Replace en VbScript.

$MaVariable = "1234567";
$MaVariable = str_replace("4", "a", $MaVariable);
echo $MaVariable."</br>\n"; //Va afficher 123a567
Lien vers le fichier : cliquez ici Copier le code

Pour ne garder que les caractères de gauche (comme un left en VbScript).
Le premier caractère à le numéro 0 (on est en base 0)

$MaVariable = "1234567";
$MaVariable = substr($MaVariable,0,3); //Ici on ne garde que les 3 premiers caractères et il ne restera que 123
echo $MaVariable."</br>\n";
Lien vers le fichier : cliquez ici Copier le code

Pour ne garder que les caractères de droite (comme un right en VbScript)

$MaVariable = "1234567";
$MaVariable = substr($MaVariable,-3); //Ici on ne garde que les 3 caractères de droite. Il restera que 567
echo $MaVariable."</br>\n";
Lien vers le fichier : cliquez ici Copier le code

Pour ne garder que les caractères à partir d'une certaine position (comme un mid en VbScript)
Il faut positionner le numéro du premier caractère à conserver + 1 (on est en base 0) dans le deuxième paramètre de la fonction substr et ne rien mettre dans le 3ème paramètre.

$MaVariable = "1234567";
$MaVariable = substr($MaVariable,3); //Ici on supprime les 3 premiers caractères et il ne restera que 4567
echo $MaVariable."</br>\n";
Lien vers le fichier : cliquez ici Copier le code

Pour supprimer les caractères de droite, il faut positionner un 0 dans le deuxième paramètre de la fonction substr et mettre une valeur négative dans le 3ème paramètre.

$MaVariable = "1234567";
$MaVariable = substr($MaVariable,0,-3); //Ici on supprime les 3 derniers caractères et il ne restera que 1234
echo $MaVariable."</br>\n";
Lien vers le fichier : cliquez ici Copier le code

Remplacer les 'a' par '' soit rien. Cela revient à supprimer les 'a'.
aaabbbcccddd deviendra donc bbbcccddd

$UneChaine = 'aaabbbcccddd';
$UneChaine = preg_replace('/a+/','a',$UneChaine);
Lien vers le fichier : cliquez ici Copier le code

Remplacer une suite de caractères par un seul et unique.
Ici une suite de 'a' comme 'aaa' deviendra donc 'a'
Un 'a' seul ne sera pas modifié.
Ici aaabbbcccddd va devenir
abbbacccddd

$UneChaine = 'aaabbbcccddd';
$UneChaine = preg_replace('/a+/','a',$UneChaine);
Lien vers le fichier : cliquez ici Copier le code

Supprimer une suite de retours chariots par un seul

$UneChaine = $UneChaine.CHR(13).CHR(13).CHR(13).CHR(13).CHR(13).CHR(10);
$UneChaine = preg_replace('/\r+/',CHR(13),$UneChaine);
Lien vers le fichier : cliquez ici Copier le code

Pages Web

Site WebDescription
Substr sur php.netLa fonction substr sur php.net
developpez.netPost de forum où l'on indique que strtr travaille directement sur les octets ce qui pose problème en utf-8
str-replace sur php.netLe fonction str-replace sur php.net
PHP.net et métacaractèresListe des métacaractères utilisables avec RegEx
PHP.net Syntaxe des masquesExplique comment metter au point des filtres RegEx (maques PCRE)

2