begin process at 2012 05 30 17:51:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

Autre

 > 

Pb accent xml/php à la volée


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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}&amp;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 --------              &nbsp 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&nbsp


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales