Les Allergies
Alimentaires
Posez votre question Signaler

[PHP] virer retours chariot d'une chaine

Jef.p18 - Dernière réponse le 17 oct. 2011 à 17:53
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 !
+
Lire la suite 

[PHP] virer retours chariot d'une chaine »

Suggestions
11 réponses
Réponse
+8
moins plus
$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
Julien - 1 oct. 2010 à 16:03
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.
Ajouter un commentaire
Réponse
+6
moins plus
$chaine = trim($chaine)

http://fr.php.net/manual/fr/function.trim.php
ratikuss- 30 nov. 2010 à 11:39
ooh merci merci !
C'est ce qu'il me fallait, encore merci !
Ajouter un commentaire
Réponse
+1
moins plus
Essaie avec:
$news = str_replace("\n", "-", $_REQUEST['news_input']);
Et aussi peut être à la suite:
$news = str_replace("\t", "-", $_REQUEST['news_input']);

Tes espaces bizzares sont peut être des tabulations.
Ajouter un commentaire
Réponse
+1
moins plus
c bidon mais ça marche:

$n = '
';
string = str_replace($n, '', $_POST['string_with_chariot']);

;)
hamwilly - 22 avril 2009 à 13:06
Salut hacki,

utilises plutôt ceci je pense que c'est mieu

$n = str_replace(CHR(13),"",$n); $n = str_replace(CHR(10),"",$n);
Ajouter un commentaire
Réponse
+0
moins plus
Attention, sous windows, les retours chariot sont :
\r\n ou \n\r, je sais plus... Enfin la fonction nl2br arrange ca en fonction de l'OS du serveur (donc pas de soucis pour faire tourner ton script sur un serveur linux).
Donc :
$news = str_replace("<br>","-", nl2br($_REQUEST['news_input'])); devrait marcher.
Ajouter un commentaire
Réponse
+0
moins plus
merci mais rien n'y fait :-///
+
Ajouter un commentaire
Réponse
+0
moins plus
rien ne vaut une bonne boucle !

$str = $_REQUEST['news_input'];
$pos = strpos($str, "\n");
if ($pos !== false) {
while($pos !== false) {
$tmp = $tmp . " " . trim(substr($str, 0, $pos));
$str = substr($str, $pos+1, strlen($str));
$pos = strpos($str, "\n");
};
$news = $tmp . " " . trim($str);
} else {
$news = $str;
}

ce bricolage fonctionne ;-)

+
Ajouter un commentaire
Réponse
+0
moins plus
Au plus simple :

function traiterChaine($chaine) {
$chaine = str_replace('\r\n', '', $chaine);
$chaine = str_replace('\r', '', $chaine);
$chaine = str_replace('\n', '', $chaine);
return $chaine;
}
Ajouter un commentaire
Ce document intitulé « [PHP] virer retours chariot d'une chaine » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?