remplacer le dernier caractère d'une chaine

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : remplacer le dernier caractère d'une chaine

par naholyr » 28 mars 2007, 22:11

Pour développer en rappelant quelques bonnes habitudes :
TOUJOURS utiliser les fonctions de remplacement fixe (str_replace & co), sauf quand on est vraiment obligé de passer par une expression régulière.
TOUJOURS utiliser les PCRE (preg_*), sauf dans le cas extrème où l'extension pcre n'est pas activée (ce cas existe-t-il ?).

@Expreg
On est d'accords que ce sont des bonnes pratiques, mais il y a des moyens un peu moins concis de le faire comprendre. Tu devrais vraiment cesser de résumer ta pensée en 3 mots, en espérant que la personne en face comprendra d'office ce que tu n'as pas dit. Au lieu de "T'as pas plus lourd ?" il convient mieux de dire "Je rappelle que les fonctions ereg_* sont des gouffres à ressources" (ce n'est toujours pas parfait, mais c'est déjà beaucoup mieux).

par raptor » 28 mars 2007, 20:40

Je donnais uniquement des exemples, afin de montrer qu'a une question ilo ya souvent nombre de solution. J'ai pris soin justement de donné une des solutions les plus interessantes en terme de ressource machine juste après.

par Expreg » 28 mars 2007, 14:12

Je vois difficilement comment faire plus léger ?
Je parlais de la version ereg_replace()

par Ryle » 28 mars 2007, 13:58

## Option substr() ## 
$chaine_finale = substr($chaine,0,-1).$str;
Je vois difficilement comment faire plus léger ?
Aller c'est vrai, on peut envisager un $chaine[strlen($chaine)-1] = $str;, ca fait deux caractères de moins ;)

par Expreg » 28 mars 2007, 13:37

Euh, t'as pas plus lourd raptor ? :shock:

par raptor » 28 mars 2007, 13:36

<?php
$chaine = "ma chaien de caracteres"; // chaine a traiter
$str = "&"; // caractère à mettre à la fin

## Option expression régulière ##

$masque = "^(.*)(.)$";
$replace = "\\1";
$chaine_finale = ereg_replace($masque,$replace.$str,$chaine);


## Option substr() ##
$chaine_finale = substr($chaine,0,-1).$str;

echo $chaine_finale;
?>
par exemple quoi

par Expreg » 28 mars 2007, 13:34

Des pistes :
- str_replace()
- strlen()
- substr()
- strrpos()

Tu as de quoi ! :wink:

remplacer le dernier caractère d'une chaine

par orgerix » 28 mars 2007, 13:09

Bonjour,

J'aimerais savoir comment on fait pour remplacer le dernier caractère d'une chaine. Je sais qu'il y a une fonction qui permet de faire ca, mais j'ai oublié laquelle et je ne la retrouve pas...