2010-02-17 5 views
1

Dans mon site si vous utilisez textarea + WSYWWYG (Wyzz WYSIWYG).Vérifiez la longueur des caractères tapés dans WYSIWYG

Je voudrais minimiser et maximiser les caractères saisis par l'utilisateur. (par exemple min 100 max 1000). Après avoir posté le formulaire, je vérifie la longueur du champ affiché. (strln($_POST['text'..) Mais les éditeurs de WSYWYG publier le champ en format HTML si le type d'utilisateur: fg alors la longueur sera 9 (<P>fg</P>9).

Quelqu'un pourrait-il me suggérer quoi que ce soit comment puis-je vérifier la longueur réelle de la chaîne saisie?

Merci.

Répondre

0

Le moyen le plus simple, même s'il ne donne pas un résultat parfait, serait de supprimer les balises HTML de l'entrée, avant d'appeler strlen.

Cela peut être fait en utilisant la fonction strip_tags:

Cette fonction tente de retourner une chaîne avec toutes les balises HTML et PHP dépouillé d'une str donnée.


Ainsi, une partie de code tel que celui-ci pourrait aider:

$html = $_POST['text']; 
$stripped = strip_tags($html); 
$length_noHtml = strlen($stripped); 
if ($length_noHtml >= 100 && $length_noHtml <= 1000) { 
    // OK 
} else { 
    // Not OK 
} 


En sidenote, si vous utilisez un codage multi-octets (je pense à UTF-8) pour votre application, vous voudrez peut-être utiliser la fonction mb_strlen, au lieu de strlen:

  • strlen comptera le nombre d'octets dans votre chaîne
  • tandis que mb_strlen comptera le nombre de caractères.
+0

ce n'est pas une mauvaise idée, mais avec des caractères latins pas une bonne solution. Pour un caractère latin comme: ü compte 2. Une idée? – Holian

+0

ne importe pas. Je vais convertir les caractères latins .. merci .. – Holian

+0

Vous êtes les bienvenus :-) Amusez-vous! –

Questions connexes