[Php] remplacer un caractère dans une chaine [Fermé]

Signaler
-
 Titi -
Bonjour,

Quelle fonction Php permet de rechercher toutes les occurences d'un caractère dans un chaine et les remplacer par un autre. Je sais que c'est pas bien compliqué mais trop difficile à trouver dans mon livre ...

Merci d'avance

7 réponses

str_replace ( char1, char2, string)
remplace tous les char1 de string par char2.

Balance ton bouquin il est mal fichu ;) Va plutôt voir du côté de www.php.net, c'est super bien fait comme site.

Pour la fonction str_replace : http://uk.php.net/manual/fr/function.str-replace.php

Voilaaaaa

Reivax
217
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 56959 internautes nous ont dit merci ce mois-ci

function suppr_accents($chaine) {
$accents = array('À','Á','Â','Ã','Ä','Å','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ò','Ó','Ô','Õ','Ö','Ù','Ú','Û','Ü','Ý','à','á','â','ã','ä','å','ç','è','é','ê','ë','ì','í','î','ï','ð','ò','ó','ô','õ','ö','ù','ú','û','ü','ý','ÿ');
$sans = array('A','A','A','A','A','A','C','E','E','E','E','I','I','I','I','O','O','O','O','O','U','U','U','U','Y','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','o','o','o','o','o','o','u','u','u','u','y','y');
return str_replace($accents, $sans, $chaine);
}

$str = "chaîne de caractères";
echo suppr_accents($str);
Un peu tard pour la réponse mais on ne sais jamais... généralement on utilise nl2br pour des données venant d'un formulaire avec une textarea nous sommes d'accord ? Et généralement aussi ces données sont stockées dans une bdd.
Les données que tu stockes, il ne faut pas faire de modif dessus ! Comme ça tu peux les utiliser dans un textarea sans avoir à supprimer les <br />. Tu n'utilises nl2br que lors de l'affichage des données ;-)
nl2br ajoute des <br />

Super. Mais comment les supprimer par la suite quand on veur reafficher une textearea ?

<textarea class='input' name='maj_texte' cols='30' rows='5'>

<?php
$matextearea = htmlentities($row['texte']);
$matextearea = str_replace ( "<br />" , " " , $matextearea );
echo $matextearea;
?>
</textarea>

Ce code ne fonctione pas
Bonjour

Je pense que c'est bon
Si il y en a qui cherchent encore comment restituer les retours chariots à l'affichage venant d'un textarea où l'on n'aura fait qu'un banal "enter", et où votre texte = "$votretexte", voici :

$result=preg_replace("/\r\n/","\n", $votretexte);
$result=preg_replace("/\r/","\n", $result);
echo preg_replace("/\n/","<br />", $result);

@+
Merci d'avoir répondu si vite. Lol mon livre Le guide officiel PHP de Micro application mais c'est pas super facile de trouver dans l'index ;)

Bon, merci encore.
Salut!
J'essaie désespérément de remplacer les retours chariots d'un message par des <br> pour pouvoir mettre le message formaté dans ma BDD... Le problème c'est que je n'y arrive ni avec strtr, ni avec str_replace... A tel point que j'en viens à me demander si je n'ai pas mis un mauvais code pour le retour chariot...
Donc est-ce que le code est bien "\\r\\n" et si oui, quelle fonction utiliser? Sinon, quel est le code svp?
Merci d'avance pour votre réponse!

Salut !
j'ai deja eu le meme probleme. SUr quelle machine veux tu remplacer les retours en ligne ??

Essaye l'un de ces examples...:
$line_breaking_character = "\r\n"; //EX1
$line_breaking_character = "\n"; //EX2
$line_breaking_character = chr(10); //EX3 ONLINE

$line_breaking_character ="
"; //EX4

$line_breaking_character = chr(10).chr(13); //EX5

l' Homme Grenouille.
> Homme Grenouille
Merci beaucoup! En effet le "\r\n" a fonctionné...
Mais je me suis aperçu que j'avais fait une autre erreur de code donc je ne sais pas si c'était cette faute ou le code qui ne fonctionnait pas...
Bref, je te remercie pour ta réponse et donc pour ton aide.
> Camthalion
En php il existe nl2br().

nl2br("Je
suis
fou");

Donnera :

nl2br("Je <br />
suis <br />
fou");
Quelqu'un sait-il comment remplacer des =>   ??