Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
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 06/04/2011, 22h45   #1
Membre éprouvé
 
Avatar de aziz jim
 
Inscription : novembre 2005
Messages : 445
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 445
Points : 407
Points : 407
Par défaut problème avec escape()

Bonsoir tout le monde:

J'ai un problème avec la fonction escape(). elle ne retourne rien si la chaîne des caractères qui lui est passée contient un 'e' accentué par exemple.


Code php :
1
2
3
4
5
6
7
<?php 
 
echo $this->escape("Bébé");       // Ne donne rien
echo $this->escape("Bebe");       // Donne  : Bebe
echo "Bébé";                             // Donne  : Bébé
 
?>


D'où ça vient SVp?
__________________
Ce n'est qu'en forgeant qu'on devient forgeron.
aziz jim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 23h35   #2
Membre chevronné
 
Avatar de denokan
 
Homme Benoît WERY
Développeur Web
Inscription : mars 2002
Messages : 431
Détails du profil
Informations personnelles :
Nom : Homme Benoît WERY
Âge : 33
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2002
Messages : 431
Points : 621
Points : 621
Bonsoir

est-ce que ta méthode escape est longue ? est-ce que tu pourrai en donner le code ?
__________________
Donnez un poisson à un homme et il mangera pendant un jour... Apprenez-lui à pêcher et il s'assiéra dans une barque et boira de la bière toute la journée
http://denokan.online.fr
denokan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 23h52   #3
Membre éprouvé
 
Avatar de aziz jim
 
Inscription : novembre 2005
Messages : 445
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 445
Points : 407
Points : 407
J'utilise le Zend_framework en "full-stack" :

Par exemple :
Dans mon Controller , et à la fin du code de l'action, je déclare une variable $Description :
Code :
1
2
 
$this->view->decription = "Page principale du site";
sachant que dans mon "layout.phtml" j'ai mis ça à l’intérieur de la balise <head></head>:
Code :
1
2
 
<meta name="description" content="<?php echo $this-> escape ($this->decription) ; ?> ">
Ainsi je peux donner à chaque vue une description différente.
J'ai fais des tests et je suis sûr que ça vient de escape()

merci
__________________
Ce n'est qu'en forgeant qu'on devient forgeron.
aziz jim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 02h51   #4
Membre Expert
 
Inscription : septembre 2010
Messages : 1 242
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 242
Points : 1 564
Points : 1 564
Et pourquoi tu poste pas ton message dans le forum Zend. Tu aurais certainement plus de réponses
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 07h24   #5
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 709
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 709
Points : 3 279
Points : 3 279
Salut

Je ne connais pas Zend, cependant, des éé sont des caractères spéciaux, peut être est-ce lié à l'encodage.

Il y a peut être besoin de définir un encodage à Zend (ou coté Php) quelque part pour que tout ça soit synchro, non ?
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 11h08   #6
Membre éprouvé
 
Avatar de aziz jim
 
Inscription : novembre 2005
Messages : 445
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 445
Points : 407
Points : 407
Citation:
Envoyé par RunCodePhp Voir le message
Salut

Je ne connais pas Zend, cependant, des éé sont des caractères spéciaux, peut être est-ce lié à l'encodage.

Il y a peut être besoin de définir un encodage à Zend (ou coté Php) quelque part pour que tout ça soit synchro, non ?

Le problème ne vient pas de Zend. En fin, c'est ce que je pense. Car même en remplaçant escape($this->decription) par escape("Bébé"), le problème persiste.

Autre chose, si le problème vient de l'encodage, les ennuis seront limités au niveau des caractères spéciaux non? Et il n'apparaitront que lors de l'affichage. Mais dans mon cas, la fonction escape() ne retourne rien si la chaîne des caractères qui lui est passée contient un 'e' accentué par exemple.
Merci Bcp.
__________________
Ce n'est qu'en forgeant qu'on devient forgeron.
aziz jim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 11h24   #7
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 709
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 709
Points : 3 279
Points : 3 279
Citation:
Car même en remplaçant escape($this->decription) par escape("Bébé"), le problème persiste.
A mon avis ça revient au même, donc c'est normal qu'on rencontre le même problème.

Citation:
si le problème vient de l'encodage, les ennuis seront limités au niveau des caractères spéciaux non? Et il n'apparaitront que lors de l'affichage
On peu voir ça comme ça.
Mais c'est une déduction un peu à la hâte.

Dans le même genre on peu dire aussi que la méthode Objet::escape() à pour but de sécurisé les données, et que s'il y a déjà une incohérence dans l'encodage, par sécurité ça renverrait rien.
Ca se tient aussi, non ?

Mais comme je ne connais pas Zend, j'en sais rien.


Citation:
Mais dans mon cas, la fonction escape() ne retourne rien si la chaîne des caractères qui lui est passée contient un 'e' accentué par exemple.
Donc tout porte à croire que c'est le jeu de caractère (encodage) qui causerait problème.
Enfin, instinctivement.

Est ce que Zend n'aurait pas une méthode (ou constante) qui renverrait le type d'encodage, tout ça afin de le comparer avec celui de Php.
C'est peut être pas le même.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 12h09   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
verifie bien l'encodage de ton appli et celle de la vue, par default c'est de l'utf-8
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 00h15   #9
Membre éprouvé
 
Avatar de aziz jim
 
Inscription : novembre 2005
Messages : 445
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 445
Points : 407
Points : 407
oui vous aviez raison,
ça vient de l'encodage effectivement.

Encore merci une fois de plus.
__________________
Ce n'est qu'en forgeant qu'on devient forgeron.
aziz jim 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 05h44.


 
 
 
 
Partenaires

Hébergement Web