Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 05-06-2007 10:44:43

bladebo
Nouveau membre
Date d'inscription: 05-06-2007
Messages: 2

[Trouvé][1.0.0 RC1] Fonctionnement des filtres

Bonjour,

J'avais posté dans un autre forum, mais je me suis dit que j'aurais peut être plus d'informations sur le forum de zf france.

Je vient d'installer le ZF, et en testant les filters, je n'arrive pas à bien comprendre le fonctionnement.
Je m'explique, j'ai le code suivant:

Code:

Zend_Loader::loadClass('Zend_Filter'); 
Zend_Loader::loadClass('Zend_Filter_StripTags'); 
Zend_Loader::loadClass('Zend_Filter_Alpha'); 
$chaine = new Zend_Filter(); 
$chaine ->addFilter(new Zend_Filter_StripTags()) 
             ->addFilter(new Zend_Filter_Alpha());   
echo $message = $chaine->filter('<b>bonjour (-è-\' 675767</b>/n'); echo "<br>";

et il m'affiche ceci "bonjourèn"
Donc il me passe bien dans le StripTags mais quand il passe dans le filter Alpha (dans le cas Alnum aussi), il supprime les espaces.

Y a t il un paramètre à ajouter ou dois je créer mon propre filtre avec l'interface si je veux garder les espaces ( et comment le créer dans ce cas) ?

Merci

Bladebo

edit : Changement du titre pour qu'il soit plus parlant

Dernière modification par bladebo (05-06-2007 12:29:20)

Hors ligne

 

#2 05-06-2007 11:51:14

fizzbanana
Membre
Date d'inscription: 29-05-2007
Messages: 40

Re: [Trouvé][1.0.0 RC1] Fonctionnement des filtres

le filter Alpha supprime tous sauf lettres.  Il faut créer un filter qui fait exactement que tu veux.

comme example, voila le code pour Zend\Filter\Alnum.php(qui suppime tous sauf lettres et numeros):

Code:

require_once 'Zend/Filter/Interface.php';


/**
 * @category   Zend
 * @package    Zend_Filter
 * @copyright  Copyright (c) 2005-2007 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Filter_Alnum implements Zend_Filter_Interface
{
    /**
     * Defined by Zend_Filter_Interface
     *
     * Returns the string $value, removing all but alphabetic and digit characters
     *
     * @param  string $value
     * @return string
     */
    public function filter($value)
    {
        return preg_replace('/[^[:alnum:]]/', '', (string) $value);
    }
}

Hors ligne

 

#3 05-06-2007 12:27:03

bladebo
Nouveau membre
Date d'inscription: 05-06-2007
Messages: 2

Re: [Trouvé][1.0.0 RC1] Fonctionnement des filtres

Après recherche et les différentes réponses que j'ai eu, cela m'a permis de trouver une piste de recherche.
les filters alpha et alnum suppriment exactement tout ce qui ne correspond pas, espace compris.
Il faut donc créer un nouveau filter ou la fonction sera de ce genre la.

Code:

public function filter($value)
    {
        return preg_replace('/[^[:alpha:]-[:space:]]/', '', (string) $value);
    }

Dommage que ce ne soit pas directement dans les fonctions existantes avec un paramètre à ajouter par exemple.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages