Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Autres composants
Autres composants Forum de support sur les autres composants de Zend Framework.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/06/2007, 16h51   #1
Invité régulier
 
Inscription : juillet 2006
Messages : 14
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 14
Points : 6
Points : 6
Par défaut [1.0.0 RC1] Fonctionnement des Filtres

Bonjour,

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 :
1
2
3
4
5
6
7
8
9
10
 
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"
Le filter Alpha (Alnum aussi) 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 ?

Merci

Bladebo
bladebo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 01h38   #2
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

J'ai l'impression que tu ne conserves que les lettres (Zend_Filter_Alpha) qui sont hors des tags HTML (Zend_Filter_StripTags). L'espace n'est pas considéré comme une lettre, il faut donc revoir les filtres appliqués
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 10h55   #3
Membre chevronné
 
Avatar de haltabush
 
Développeur Web
Inscription : avril 2005
Messages : 726
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 726
Points : 790
Points : 790
Que veux-tu supprimer au juste? Pour l'instant, le comportement me semble plutot normal...
En fait, si tu veux te contenter d'utiliser un Zend_Filter_StripTags, il faut faire
Code :
1
2
$fTags=new Zend_Filter_StripTags();
$newtexte=$fTags->filter('tontexte');
Je pense que la classe Zend_Filter ne sert qu'à créer des filtres multiples (comme ici, ou tu supprime a la fois les chiffres et les tags)

edit : merci Yogui pour la correction
__________________
HADOPI : black-out du net!
haltabush est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 11h07   #4
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Citation:
Envoyé par haltabush
Que veux-tu supprimer au juste? Pour l'instant, le comportement me semble plutot normal...
En fait, si tu veux te contenter d'utiliser un Zend_Filter_StripTags, il faut faire
Code :
1
2
$fTags=new Zend_Filter_StripTags();
$newtexte=$fTags->filter('tontexte');
Je pense que la classe Zend_Filter ne sert qu'à créer des filtres multiples (comme ici, ou tu supprime a la fois les lettres et les tags)
Tu sans doute veux parler des "non lettres" mais sinon, tu as en effet raison
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 11h17   #5
Invité régulier
 
Inscription : juillet 2006
Messages : 14
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 14
Points : 6
Points : 6
Je me suis peut-être mal exprimé.

Je veux en fait supprimer les tags puis supprimer tout ce qui n'est pas alphabétique mais en gardant les espaces.
Ce qui permettrais de faire passer un texte dans le filter.

EDIT:
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 supprime 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 :
1
2
3
4
5
 
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
bladebo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h43.


 
 
 
 
Partenaires

Hébergement Web