Remplacer n-éme caractère dans une chaine
aisha
-
aisha -
aisha -
Bonjour,
SVP je cherche une fonction php qui fait remplace n-éme caractére dansune chaine par une autre
Exemple:
$chaine='KOI;jgh5;bsb';
j'amerai remplacer la 3éme ; par un autre caractére Aide svp :)
Merdi d'avance :)
SVP je cherche une fonction php qui fait remplace n-éme caractére dansune chaine par une autre
Exemple:
$chaine='KOI;jgh5;bsb';
j'amerai remplacer la 3éme ; par un autre caractére Aide svp :)
Merdi d'avance :)
1 réponse
-
Bonjour, s'il s'agit d'un simple changement pour un seul caractère ce code suffira
<?php $chaine='KOI;jgh5;bsb'; $chaine[2] = "L"; echo $chaine; ?>
Sinon pour une plus grande flexibilité la fonction substr_replace ( https://www.php.net/manual/fr/function.substr-replace.php ) est plus adaptée-
-
-
-
Ah d'accord, j'avais mal compris, il aurait fallu mettre des guillemets sur le point virgule, dans ce cas j'ai trouvé une fonction sur internet qui permet de faire ce qui est demandé
<?php function str_replace_nth($search, $replace, $subject, $nth) { $found = preg_match_all('/'.preg_quote($search).'/', $subject, $matches, PREG_OFFSET_CAPTURE); if (false !== $found && $found > $nth) { return substr_replace($subject, $replace, $matches[0][$nth][1], strlen($search)); } return $subject; } $subject='KOI;jgh5;bsb'; echo str_replace_nth(';', ',', $subject, 1); ?>
Dans cet exemple on remplace le 2ème ";" par un ",".
Pour modifier le 6ème ";" il faut remplacer le 1 par un 5 dans la fonction str_replace_nth() -
-