8797 sujets

Développement web côté serveur, CMS

Bonsoir, je galère depuis quelques temps pour un problème qui me semble simple à réaliser.

Je souhaite supprimer les retours chariots en trop d'un textarea (si 3 ou + n'en prendre que 2) avant de l'enregistrer en base de données.

mon enregistrement se fait comme cela :
$texte = mysql_real_escape_string($_POST["texte"]);


et dans ma table news le champ texte contient autant de saut de ligne que ceux que l'user à saisi. (pas top).

Au pire des cas (enregistrer avec tous les sauts de ligne), comment faire pour n'afficher qu'au maximum 2 retours chariots dans ma page qui affiche les articles ?

Merci de vos lumières.
Modifié par pareto (20 Nov 2012 - 10:48)

$texte = trim(preg_replace("#([\n]+){2,}#", "\n\n", $_POST['texte']));
$texte = mysql_real_escape_string($texte);
$texte = trim(preg_replace("#([\r\n]+){2,}#", "\n\n", $_POST['texte']));			
$texte = mysql_real_escape_string($texte);

$sql = mysql_db_query($bdd,"insert into basenews values ($idnew,  \"$titre\", \"$texte\" )",$conn) or die(mysql_error());

Modifié par pareto (19 Nov 2012 - 20:10)
Normal tu as changé le code. Si tu mets \r\n au lieu de \n tu dois remplacer {2,} par {4,}. Mais je ne vois pas pourquoi tu as fait ça.
Modifié par jb_gfx (19 Nov 2012 - 20:15)
même avec

$texte = trim(preg_replace("#([\n]+){2,}#", "\n\n", $_POST['texte']));
$texte = mysql_real_escape_string($texte);


ça ne marche pas Smiley decu
Modifié par pareto (19 Nov 2012 - 20:22)
Merci Super_baloo8, j'ai un tout petit peu adapté le code mais ça fonctionne.

$texte = trim(preg_replace('#[\n|\r]{2,}#', "\n\n", $_POST['texte']));
$texte = mysql_real_escape_string($texte);