Problème d'accent du XML à la base [Résolu]

Messages postés
19
Date d'inscription
jeudi 19 août 2010
Statut
Membre
Dernière intervention
24 décembre 2010
- - Dernière réponse : Etn3000
Messages postés
39
Date d'inscription
mercredi 30 juin 2010
Statut
Membre
Dernière intervention
10 décembre 2010
- 7 sept. 2010 à 15:43
Bonjour .. Je sais que mon problème est très fréquent dans le monde du web mais une solution adéquate à mon problème reste introuvable.

Grâce à ce code j'importe un fichier XML à ma base de données :


<?php


$data = array();

try
{
$bdd = new PDO('mysql:host=localhost;dbname=archive', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}

function add_person( $first, $middle, $last, $email )
{
global $data, $bdd;
if(!empty($first) and!empty($middle) and !empty($last) and !empty($email))
{ $sth = $bdd->prepare( "INSERT INTO names VALUES( 0, ?, ?, ?, ? )" );
$sth->execute(array( $first, $middle, $last, $email ) );

$data []= array(
'first' => $first,
'middle' => $middle,
'last' => $last,
'email' => $email
);
}}

if ( $_FILES['file']['tmp_name'] )
{
$dom = DOMDocument::load( $_FILES['file']['tmp_name'] );
$rows = $dom->getElementsByTagName( 'Row' );
$first_row = true;
foreach ($rows as $row)
{
if ( !$first_row )
{
$first = "";
$middle = "";
$last = "";
$email = "";

$index = 1;
$cells = $row->getElementsByTagName( 'Cell' );
foreach( $cells as $cell )
{
$ind = $cell->getAttribute( 'Index' );
if ( $ind !null ) $index $ind;

if ( $index 1 ) $first $cell->nodeValue;
if ( $index 2 ) $middle $cell->nodeValue;
if ( $index 3 ) $last $cell->nodeValue;
if ( $index 4 ) $email $cell->nodeValue;

$index += 1;
}
add_person( $first, $middle, $last, $email );
}
$first_row = false;
}
}

une fois dans ma base les accents deviennent des éé . Oui oui cela me rend malade!
Alors ma base est en utf8_general_ci, ma table aussi et les colonnes aussi !!
Je ne vois vraiment pas où est le problème!
Aidez moi svp
et merciii d'avance
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
19
Date d'inscription
jeudi 19 août 2010
Statut
Membre
Dernière intervention
24 décembre 2010
3
Merci
j ai réglé mon problème en ajoutant cette ligne après la connexion à la base
:
$bdd->exec('SET NAMES utf8');

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 133 internautes nous ont dit merci ce mois-ci

Commenter la réponse de LailaMsaadi
Messages postés
39
Date d'inscription
mercredi 30 juin 2010
Statut
Membre
Dernière intervention
10 décembre 2010
1
3
Merci
Ou aussi:

$texte = utf8_decode($texte);

Les accents seront remis normalement dans $texte

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 133 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Etn3000