[RESOLU] Des retours de chariots qui font bloquer

Mammouth du PHP | 810 Messages

21 nov. 2016, 05:33

Bonjour à vous,

je tente de récupérer et traiter des données conservées dans un table et de les envoyer dans une table temporaire.
Si, par malheur, mon champ (type TEXT) comporte des retours de chariots, mon de la table temporaire traitement n'est plus possible. Je n'arrive pas à comprendre pourquoi alors j'ai tenté de traiter tous les retours de chariot que je trouvais sur mon chemin.

Voici mes outils de traitement:
$MaReponse = addslashes($_POST["Contenu"]);
	$MaReponse = str_replace("à", "à", $MaReponse);
	$MaReponse = str_replace("'", "`", $MaReponse);
	$MaReponse = nl2br($MaReponse);
Voyez, j'ai cru un moment qu'il s'agissait des accents, mais non.
Je suis sûr maintenant que ce sont les retour de chariots (inscrits dans un champ textarea avec ckeditor par l'usager), mais voilà, je n'arrive pas à les traiter.

Pensez-vous que
$MaReponse = str_replace("\n", "`", $MaReponse);
saura y faire ?

Que me suggérez-vous?

Le champ d'origine (table permanente) : nommé: contenu type: text
Le champ destination (table temporaire): nomme: Contenu type: text

Le vrai problème, c'est de passer par du javascipt dans un iframe caché. Le javascript ne tolère pas ces retours de chariot. Ce n'est pas là que je veux agir, ça demande trop de temps.


Merci à l'avance.
Soyez artisans de paix

Avatar de l’utilisateur
Administrateur PHPfrance
Administrateur PHPfrance | 7158 Messages

21 nov. 2016, 10:06

Bonjour,

J'ai rien compris à ta dernière phrase.
Qu'est-ce qui bloque exactement ? Qu'as-tu comme message d'erreur et sur quelle ligne de code ?

Car si tu veux juste copier un champ SQL de type TEXT d'une table à une autre, il n'y a pas de raison que le contenu te bloque si le format SQL est le même en origine et destination.
Quand tout le reste a échoué, lisez le mode d'emploi...

Mammouth du PHP | 810 Messages

21 nov. 2016, 15:26

Merci Arthur.

Ne vous souciez pas de la dernière phrase.
Ce que je cherche, c'est simplement à éliminer les "\n", retour de chariot qui ne semblent pas être reconnus par la fonction ln2br de php.
Soyez artisans de paix

Mammouth du PHP | 810 Messages

21 nov. 2016, 15:54

Bonjour et merci de votre aide.

Je crois que j'ai trouvé une solution viable: traiter le textes soumis par les usagers avant même qu'ils ne soient enregistrés dans la table.

Le traitement se fait en javascript par la fonction suivante, et - après quelques petits tests simples - ça semble répondre adéquatement à mon besoin.

Code : Tout sélectionner

contenu = contenu.replace(/\r\n|\r|\n/g, '<br />');

Il s'agit parfois d'en parler pour orienter autrement notre recherche.
La réaction d'Arthur « Je ne comprends pas .... » m'a éveillé.
Soyez artisans de paix