Taille d'une chaine et retour-chariot

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Taille d'une chaine et retour-chariot

par Flashball » 13 sept. 2007, 16:41

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!

par d0m » 13 sept. 2007, 16:32

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?

par Flashball » 13 sept. 2007, 16:20

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:

par Ryle » 13 sept. 2007, 16:13

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 :)

Taille d'une chaine et retour-chariot

par Flashball » 13 sept. 2007, 16:08

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