Page 1 sur 1

Taille d'une chaine et retour-chariot

Posté : 13 sept. 2007, 16:08
par Flashball
Bonjour,

J'envoie par la méthode POST un formulaire contenant un textarea. Je veux limiter la taille à X caractères maximum. Pour ce faire, je contrôle côté serveur la chaine en utilisant la fonction strlen(). Or cette méthode compte pour 2 caractères les retour chariots entrés par l'utilisateur.

Par exemple la chaine:
123

67
me retournera 9 au lieu des 7 attendu.

Comment faire pour ne les compter qu'une seule fois?

Merci pour votre aide!

Flashball

Posté : 13 sept. 2007, 16:13
par Ryle
Un retour charriot peut s'écrire de deux manières différentes selon que tu sois sur un système unix (\n) ou windows (\r\n). Le premier comptera pour un caractère, le second pour deux.

Tu peux donc essayer de remplacer dans ta chaine tous les '\r\n' par un '\n' avant d'utiliser strlen(), ou tu peux également compter le nombre d'occurence des retours charriot et les oter de la taille obtenue :)

Posté : 13 sept. 2007, 16:20
par Flashball
J'ai effectué un str_replace() sur la chaine de '\r\n' par '\n' mais le compte est toujours le même.

Mes logs affichent un caractère bizarre à la place du retour charriot: un petit carré que je ne peux pas copier-coller sinon il se transforme en retour charriot justement! :roll:

Posté : 13 sept. 2007, 16:32
par d0m
Mes logs affichent un caractère bizarre à la place du retour charriot: un petit carré que je ne peux pas copier-coller sinon il se transforme en retour charriot justement! :roll:
tu as bien activé les retour à la lignes automatiques pour regarder les logs?

Posté : 13 sept. 2007, 16:41
par Flashball
Mea culpa j'ai fait la grossière erreur d'utiliser des simples cotes dans la fonction str_replace au lieu des doubles... :oops:

Merci pour le tuyau Windows/Unix en tout cas!