[PHP] virer retours chariot d'une chaine

Fermé
Jef.p18 - 2 août 2005 à 11:20
 Mello - 12 janv. 2016 à 16:41
salut j'utilise la fonction str_replace pour essayer d'enlever les retours chariot (=chr(13) d'une chaine avant de la stocker en base de données ... mais rien y fait ! quand je teste avec un simple echo ils sont bien remplacés mais subsiste un espace bizarroïde. et quand je balance le tout a mysql mes retours chariot sont toujours là !!! :-///

// retraitement du texte à insérer
$news = str_replace(chr(13), "-", $_REQUEST['news_input']);

// execution sql 1
$sql1_query = mysql_query("
INSERT INTO mtg_news (date, joueur, news)
VALUES ('"
. $annee . "-" . $mois ."-" . $jour . "','"
. strtolower(trim(substr($_REQUEST['joueur_input'], 0, 100))) . "','"
. $news . "')"
) or die (mysql_error());

merci !
+

9 réponses

$n = str_replace(CHR(13),"",$n); $n = str_replace(CHR(10),"",$n);

c'est bien mais

$n = str_replace(CHR(13).CHR(10),"",$n);

c'est mieux.

Merci pour votre aide car j'avais oublié comment on faisait. (vive google) LoL
24
C'est effectivement cette solution qui est la meilleur et qui peut se décliner comme ceci:

$tab = array( CHR(13) => " ", CHR(10) => " " );
$n = strtr($n,$tab);

Ce qui permet d'ajouter facilement d'autres caractères ou chaines à remplacer facilement dans le tableau.
0
Pour ma part j'aurais fait :
$n = str_replace(PHP_EOL,"",$n);

Ca évite les problème potentiel d'OS de l'hébergeur :)
0