PHP - Validar cantidad de palabras en textarea con ckeditor y zend php

 
Vista:
Imágen de perfil de Oscar

Validar cantidad de palabras en textarea con ckeditor y zend php

Publicado por Oscar (1 intervención) el 22/10/2015 01:38:41
Mi problema es el siguiente:7

Tengo un textarea y utilizo a CKEDITOR para la entrada del texto y darle formato.

El contendido del texto lo tengo que validar, ya que hay un mímino y máximo de palabras como restricción, asi que creé un validador:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
 
class App_Validate_MinCaracteresClaseIntroduccion extends Zend_Validate_Abstract {
 
    const PROG_EXIS = 'minCaracteresClaseIntroduccion';
 
    protected $_messageTemplates = array(self::PROG_EXIS => '150 palabras como mínimo y 250 como máximo');
 
    public function isValid($value, $context = null) {
        $this->_setValue($value);
 
        //elimino etiquetas htmls
        $filter = new Zend_Filter_StripTags();
        $texto_timpio = $filter->filter($value);
 
       //cuento las palabras con str_word_count
        $palabras = str_word_count($texto_timpio, 0);
 
       //valido que este dentro del rango permitido
        if ($palabras >= 150 && $palabras <= 250) {
            return true;
        } else {
            $this->_error(self::PROG_EXIS);
            return false;
        }
    }
 
}
?>

Sin embargo, no me funciona el validador, si elimina las etiquetas, pero quedan tildes como aacute, nbsp,
etc..., y además str_word_count las cuenta como palabras, lo que hace que falle la validación.

Ya intenté utilizar htmlentities, utf_8, str_replace y nada funciona...

Tal vez me puedan dar una idea de como validar dicho campo?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder