Accueil > Forum > > > > Pb accent xml/php à la volée
Pb accent xml/php à la volée
jeudi 24 février 2011 à 18:20:14 |
Pb accent xml/php à la volée

Liz34
|
Bonjour à tous,
après des heures de recherche infructueuse je me décide à demander de l'aide.
Précision : je suis débutante en php
J'utilise des xml qui sont traité par des xsl et parser à la volée par php, mon soucis c'est que j'ai des accents ou des apostrophes dans les tags. Si les accents ressortent correctement (contrairement aux apostrophes) le système ne semble pas les reconnaitre puisqu'il ne m'affiche rien. Et bien entendu, dès que j'enlève les accents tout fonctionne...
pour info site : www.restic.fr --> concept --> "acteur generalise" (relation) marche
alors que : www.restic.fr --> concept --> "acteur généralisé" (norme) marche PAS!!!
Quelqu'un a-t-il une solution?
PLEASE!!!!
|
|
vendredi 25 février 2011 à 13:03:16 |
Re : Pb accent xml/php à la volée

007Julien
|
Hormis les accents sur généralisé, je ne vois pas de différence entre les pages citées ?
Ceci dit, il est souvent bon en PHP de spécifier le charset du language employé avec un header en tête
Code PHP :
header("Content-Type: text/html; charset=iso-8859-1");
|
|
vendredi 25 février 2011 à 20:23:18 |
Re : Pb accent xml/php à la volée

Liz34
|
J'ai dû mal m'exprimer, lorsqu'il n'y a pas d'accent cela fonctionne (il faut cliquer sur "relation" dans le menu de gauche pour voir apparaitre le texte), alors que lorsqu'il y a un accent php ou xslt ne semble pas vouloir récupérer les données balisées.
Et quand je teste ta solution ça me met ce message d'erreur :
Warning: Cannot modify header information - headers already sent by (output started at /homepages/21/d310769191/htdocs/restic/index.php:12) in /homepages/21/d310769191/htdocs/restic/fonctions.php on line 2
Une autre idée?
|
|
vendredi 25 février 2011 à 23:17:55 |
Re : Pb accent xml/php à la volée

007Julien
|
Les accents et les espaces ne passent dans une adresse, il conviendrait d'«encoder» les paramètres de celles-ci avec la fonction urlencode() (voir aussi l'avertissement de urldecode() qui précise que le $_GET décode automatiquement).
Autrement dit en PHP, il convient de remplacer la 1ère chaîne par la suivante
Code PHP : href="concepts_fiche.php?concept=acteur généralisé&action=definitions";
href="concepts_fiche.php?concept=".urlencode("acteur généralisé")."&action=".urlencode("definitions");
|
|
vendredi 25 février 2011 à 23:27:08 |
Re : Pb accent xml/php à la volée

007Julien
|
Quant au message d'erreur, il provient de l'impossibilité de modifier l'entête d'une page lorsque celle-ci a été au moins partiellement envoyée.
C'est une erreur courante parfois difficile à détecter (voir par exemple cette page).
|
|
samedi 26 février 2011 à 10:59:48 |
Re : Pb accent xml/php à la volée

007Julien
|
Si les adresses ainsi obtenues paraissaient inesthétiques, une autre solution consisterait à construire une fonction supprimant les accents et remplaçant les espaces par des tirets-bas.
À condition de préserver les caractères spéciaux des adresses, cette fonction pourrait être appliquée à leur intégralité et non pas à chaque champ pris individuellement.
Attention toutefois aux solutions simplistes n'évoquant pas le jeu de caractère utilisé (voir par exemple cette page).
|
|
dimanche 27 février 2011 à 21:03:22 |
Re : Pb accent xml/php à la volée

Liz34
|
Merci 007Julien d'essayer de m'aider!
Concernant ta première proposition (urlencode), je ne crois pas pouvoir l'utiliser car voici mon code xslt :
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output encoding="ISO-8859-1"/>
<xsl:param name="lettre"/>
<xsl:template match="liste">
<xsl:if test="count(concept[starts-with(translate(.,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ'),$lettre)])=0">
<p>Il n'y pas de concept commençant par la lettre : <b><xsl:value-of select="$lettre"/></b></p>
</xsl:if>
<ul>
<xsl:for-each select="concept[not(. = preceding-sibling::concept[starts-with(translate(.,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ'),$lettre)])][starts-with(translate(.,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ'),$lettre)]">
<xsl:sort select="." order="ascending" data-type="text"/>
<xsl:variable name="concept_nom" select="."/>
<li> <A href="concepts_fiche.php?concept={$concept_nom}&action=definitions" target="_self" > <xsl:value-of select="."/></A></li>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>
|
|
dimanche 27 février 2011 à 21:05:32 |
Re : Pb accent xml/php à la volée

Liz34
|
J'ai également essayé de remplacer les accents par des tirets mais sans succès...
|
|
dimanche 27 février 2011 à 23:35:47 |
Re : Pb accent xml/php à la volée

007Julien
|
Bien que je ne connaisse absolument rien en xml ni xls la variable entre crochet $concept_nom me semble étrangement ressembler à une variable PHP.
Serait-il possible de définir la fonction suivante et de remplacer cette variable, là où elle est définie (et donc partout où elle intervient), par $sans_concept_nom=snsAccNiSpc($concept_nom); dans un bout de PHP?
// Fichier à enregistrer en iso-8859-1
<?php
header("Content-Type: text/html; charset=iso-8859-1");
function snsAccNiSpc($s){return strtr($s," àâçéèêëîïôùûüÀÂÇÉÈÊËÏÎÔÙÛÜ'","_aaceeeeiiouuuAACEEEEIIOUUU_");}
// À titre de test
$sans_concept_nom=snsAccNiSpc("le père Noël apporte des jouets à l'élève Édouard");
echo $sans_concept_nom;
?>
Je me suis limité aux accents français en ajoutant les espaces et apostrophes (premier et dernier caractères) à remplacer par des tirets bas. Les ligatures ne figurant pas dans l'ISO-8859-1 ne devraient pas poser de problèmes... Peut-être conviendrait-il cependant d'envisager l'utf-8 dès maintenant ?
|
|
Cette discussion est classée dans : pb, php, xml, accents, volée
Répondre à ce message
Sujets en rapport avec ce message
Pb de récupéationde données XML en PHP [ par baka72 ]
Salut,J ai un pb en php qd je veu récupérer mes données XML. en effet, si le contenu de la donnée est assez long PHP me la met en plusieurs morceaux e
pb d'accents envoie de mail via fonction php mail [ par fredericmaill ]
Bonjour,j'envoie des mail grâce a la fonction mail de php, les email son bien envoyé de ce coté la pas de pb, par contre j'ai un pb du coté des accent
Pb affichage php dans html [ par yoyotheboss7 ]
Bonjour à tous ! Je vais chercher du texte dans une base mysql, mais j'ai un problème avec l'affichage. Lorsque je fait mon echo"$mon variable" dans u
Pb avec script php avec manip sur base mysql [ par saccomabi ]
Bonjour,j'utilise le dernier Wamp tout fonctionne phphmyadmin et autres. Lorsque je veux écrire un script php avec une connection ou autre à mysql il
connexion php ldap [ par haifoufa ]
je suis sous fedora 4 j'ai un problème avec la foction ldap_bind je ne comprens pas pourquoi. voici mon code: <? $server="localhost"; $port="389"; $r
PB Include PHP [ par sprixx ]
Bonjour voici le code de mon site : -------Liens --------Links Name-------Page --------  
génération automatique document xml à partir php [ par didimarco62 ]
marcodidi62 Salut, J'aurais besoin de créer un document XML de façon dynamique à partir de mon code PHP. Le document XML recevrait les valeurs de mes
pb affichage avec < > page php [ par nono009 ]
voici mon code Raison sociale
mail pb SMTP [ par EMSIEN ]
Dans le cadre d'un petit programme que je veux faire,j'ai besoin d'envoyer un e-mail avec PHP,j'ai utilisé la fonction mail(mail,subject,msg)mais ça m
pb de lien [ par kyript ]
bonjour a tousvoila mon pbj'ai un formulaire :comme vous pouvez le voir j'envoi sur la meme page !!!donc quand je fait envoyé voila le lien 
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
BALISE D'ANCREBALISE D'ANCRE par FADEST
Cliquez pour lire la suite par FADEST
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|