WampServer

Apache, PHP, MySQL on Windows 

 
  • Accueil forum
  • Retour à WampServer
  • presentation
  • Download
  • Addons
  • Formations
  • Alter Way

 
Voir le sujet: Précédent•Suivant
Aller à : Liste des Forums•Liste des messages•Nouvelle discussion•Recherche•Connexion•Imprimer la vue
pb mots avec accents, vive la france !!!
Envoyé par: Jackouille (---.w217-128.abo.wanadoo.fr)
Date: 16 October 2004 à 14:15

Salut à tous,
J'ai une appli qui fonctionne super avec Easyphp 1.6 et je veux l'utiliser avec Wamp5 mais sur une fonctionnalité qui importe un fichier XML qui contient des lignes avec des mots français avec accents éè... ces mots sont tronquées à l'import avec Wamp5 et ça marche nickel avec Easyphp 1.6 ils sont bien intégrés en entier.
D'où vient mon pb ?
Est-ce que ça vient de Wamp qui en anglais ? y-a-t-il une config ds Wamp5 à modifier pour la France ?
Du code php qui était développé pour du PHP4 ? auquelle cas quelle peut-être l'instruction qui doit être converti sous PHP5 ? car j'aimerai éviter de basculer Wamp5 en PHP4
J'ai des lignes du style :
$NomSequence=utf8_decode($data);
?????
merci pour les pistes.

Options: Répondre•Citer ce Message
Re: pb mots avec accents, vive la france !!!
Envoyé par: Jackouille (---.w81-50.abo.wanadoo.fr)
Date: 16 October 2004 à 18:14

Cherchez pas je pense avoir trouvé c'est le code de mon appli qui ne fonctionne pas avec PHP5 car avec Wamp5 en installant l'addon on peut passer de PHP5 à PHP4 en un seul click et inversement bien sûr et lorsque je revient en PHP4 ça marche impect alors que ça bug lorsque je reviens en PHP5, maintenant je ne connais pas le remède au niveau du code ????? car mon fichier XML est codé UTF8 donc j'utilise une ligne qui récupère le texte du XML en faisant :
$NomSequence=utf8_decode($data);
cette instruction est bien compatible PHP5 ???

Options: Répondre•Citer ce Message
Re: pb mots avec accents, vive la france !!!
Envoyé par: Viper (---.adsl.proxad.net)
Date: 16 October 2004 à 18:30

pffffffttttt !!!!! Alors là, aucune idée smiling smiley !!!
Désolé, je passe la main aux autres ! grinning smiley

mais bon courage quand-même winking smiley

Options: Répondre•Citer ce Message
Re: pb mots avec accents, vive la france !!!
Envoyé par: Romain Bourdon (---.fbx.proxad.net)
Date: 16 October 2004 à 19:38

La gestion du XML n'est pas la même entre PHP4 et PHP5. Le plus simple reste de lire la doc officielle de PHP.

Romain

Options: Répondre•Citer ce Message
Re: pb mots avec accents, vive la france !!!
Envoyé par: Jackouille (---.w81-50.abo.wanadoo.fr)
Date: 17 October 2004 à 20:45

ne serait ce pas un pb de config ds le php.ini du PHP5 ????

Options: Répondre•Citer ce Message
Re: pb mots avec accents, vive la france !!!
Envoyé par: bistory (---.belbone.be)
Date: 18 October 2004 à 08:22

Non, il n'y a rien sur xml dans le php.ini (le pauvre, arrêtez de l'incriminer :p)
Va voir la doc winking smiley

Options: Répondre•Citer ce Message
Re: pb mots avec accents, vive la france !!!
Envoyé par: jackouille (---.w81-48.abo.wanadoo.fr)
Date: 18 October 2004 à 20:41

j'ai beau regarder la doc mais je ne vois rien car mon code fonctionne avec PHP4 donc pourquoi avec PHP5 ça bug, j'utilise bien utf8_decode mais rien n'y fait ???? pour moi il ya quelque chose ds Wamp ou ds PHP5 ???? je répète le même code et le même fichier XML fonctionne avec Wamp PHP4 ?????

Options: Répondre•Citer ce Message
Re: pb mots avec accents, vive la france !!!
Envoyé par: Tonio (---.adsl.proxad.net)
Date: 20 October 2004 à 15:17

Salut,

J'ai uttlisé utf8_decode($xml) pas plus tard qu'hier sous WAMP (PHP5)
et ça marche nickel,
tous mes accents sont bien reconvertis...

++

Tonio

Options: Répondre•Citer ce Message
Re: pb mots avec accents, vive la france !!!
Envoyé par: Tonio (---.adsl.proxad.net)
Date: 20 October 2004 à 15:33

Pour tester ce que je viens de dire, voici un script débile mais exhaustif sur
l'utilisation de utf8_decode() et de simpleXML :

$chaineXml = "<corps>";
$chaineXml .= " <access>True</access>";
$chaineXml .= " <titre lang='fr' cont='Europe'>Salut</titre>";
$chaineXml .= " <cmdeSelect>";
$chaineXml .= " <numCmde>8010</numCmde>";
$chaineXml .= " <infoLiv>Livrer avant l'arrivée de la nuit à ç</infoLiv>";
$chaineXml .= " </cmdeSelect>";
$chaineXml .= " <cmdeSelect>";
$chaineXml .= " <numCmde>1234</numCmde>";
$chaineXml .= " <infoLiv>Pas d'info pépé</infoLiv>";
$chaineXml .= " </cmdeSelect>";
$chaineXml .= "</corps>";

$xml = utf8_encode($chaineXml);

$racine = simplexml_load_string($xml);


if($racine->access == "True"winking smiley{
// lecture :
echo $racine->titre['lang'] . " : " . $racine->titre . "<br><br>";

foreach($racine->titre->attributes() as $nom => $valeur){
echo $nom . " = " . $valeur . "<br>";
}
echo "<br>";

foreach($racine->cmdeSelect as $cmdeSelect){
echo utf8_decode($cmdeSelect->numCmde) . "<br>";
echo utf8_decode($cmdeSelect->infoLiv) . "<br>";
}
echo "<br>";

// Modification :

$racine->titre['lang'] = 'en';
$racine->titre = 'Hello';
echo $racine->titre['lang'] . " : " . $racine->titre . "<br><br>";

// Création d'un nvel attribut :

$racine->titre['planete'] = 'Terre';
echo $racine->titre['planete'] . "<br><br>";

// Effacement d'attribut :
unset($racine->titre['planete']);
foreach($racine->titre->attributes() as $nom => $valeur){
echo $nom . " = " . $valeur . "<br>";
}
}else{
echo utf8_decode($racine->access);
}

Voici la sortie sous wamp :

fr : Salut

lang = fr
cont = Europe

8010
Livrer avant l'arrivée de la nuit à ç
1234
Pas d'info pépé

en : Hello

Terre

lang = en
cont = Europe

Options: Répondre•Citer ce Message
Re: pb mots avec accents, vive la france !!!
Envoyé par: Jackouille (---.w81-50.abo.wanadoo.fr)
Date: 21 October 2004 à 18:32

effectivement chez toi ça marche car tu utilises simplexml alors que moi mon code origine est du php4 en voici un extrait :

function ChercheId($fic) {
global $ids;
global $reps;

///////// TEST /////////
if ($fic==""winking smiley {$fic="imsmanifest.xml";}
$fic=$reps.$fic;

$xml_parser2=xml_parser_create();
xml_set_element_handler($xml_parser2, "Demarre", "Termine"winking smiley;
xml_set_character_data_handler($xml_parser2, "Donnee"winking smiley;

//ouvrir le fichier
if (!($fp = fopen($fic, "r"winking smiley)) {
die("Impossible d'ouvrir le fichier XML"winking smiley;
}

while ($data = fread($fp, 4096)) {
if (!xml_parse($xml_parser2, $data, feof($fp))) {
die(sprintf("Erreur XML: %s ligne %d",
xml_error_string(xml_get_error_code($xml_parser2)),
xml_get_current_line_number($xml_parser2)));
}
}
////////////
xml_parser_free($xml_parser2);
return $ids;
}

function characterData($parser, $data) {
global $currentTag;
global $AttentTitre;
global $AttentNom;
global $AttentLaunch;
global $AttentLocation;
global $Sequence;
global $NbSequence;
global $NomSequence;
global $Launch;

$name= $currentTag;

if (($name=="TITLE"winking smiley&&($AttentTitre)) {
$Sequence['titre'][$NbSequence-1]=utf8_decode($data);
$AttentTitre=0;
}

if (($name=="ADLCP:LOCATION"winking smiley&&($AttentLocation)) {
$Sequence['location'][]=utf8_decode($data);
$AttentLocation=0;
}

if (($name=="TITLE"winking smiley&&($AttentNom)) {
$NomSequence=utf8_decode($data);
$AttentNom=0;
}

if (($name=="ADLCPgrinning smileyATAFROMLMS"winking smiley&&($AttentLaunch)) {
$Launch.=utf8_decode($data);
}
}

Options: Répondre•Citer ce Message
Re: pb mots avec accents, vive la france !!!
Envoyé par: Tonio (---.adsl.proxad.net)
Date: 22 October 2004 à 09:01

Je ne pense pas que utf8_decode() soit en cause.
Par contre, lit ceci, cela peut peut-être t'aider :

---------------------------------------------------------------------------------------------------------------------
[fr.php.net] :
xml_parser_create :

jcalvert at gmx dot net
03-Apr-2004 08:39

To maintain compatibility between PHP4 and PHP5 you should always pass a string argument to this function. PHP4 autodetects the format of the input if you leave it out whereas PHP5 will assume the format to be ISO-8859-1 (and choke on the byte order marker of UTF-8 files).

Calling the function as <?php $res = xml_parser_create('') ?> will cause both versions of PHP to autodetect the format.

---------------------------------------------------------------------------------------------------------------------
Maintenant, même si cela fonctionne, je te conseil vivement de passer à simpleXML
qui est vraiment SIMPLE et tout aussi puissant que ce que tu faisait en PHP4.
Et s'il te manque des fonctionalitées, transforme ton objet simpleXML en objet DOM..
XSLT est lui aussi très bien supporté..

++

Tonio

Options: Répondre•Citer ce Message
Re: pb mots avec accents, vive la france !!!
Envoyé par: Tonio (---.adsl.proxad.net)
Date: 22 October 2004 à 09:04

Un petit complément de ce que je viens de dire :

resource xml_parser_create ( [string encoding])


xml_parser_create() crée un analyseur XML et retourne une référence sur cet analyseur pour qu'il puisse être utilisé ultérieurement par d'autres fonctions XML.

Le paramètre optionnel encoding spécifie le jeu de caractères que le XML doit traiter. Les jeux de caractères supportés sont "ISO-8859-1", qui est aussi la valeur par défaut si encoding est omis, "UTF-8" et "US-ASCII".

Options: Répondre•Citer ce Message
Re: pb mots avec accents, vive la france !!!
Envoyé par: Jackouille (81.80.246.---)
Date: 26 October 2004 à 15:59

Bon après plusieurs de recherche sur x phorum n'ayant pas de réponse, je vais mettre ça sur un bug de PHP5 & xml_parser_create car j'ai essayé avec simplexml et la le pb se résoud !!!!!!!

Options: Répondre•Citer ce Message


Aller à : Liste des Forums•Liste des messages•Recherche•Connexion
Désolé, seuls les utilisateurs connectés peuvent envoyer des messages dans ce forum.
Cliquer ici pour se connecter

design by jidePowered by Alter Way get firefoxget PHP