Problème avec explode et les apostrophes
Résolu
steller91
Messages postés
30
Statut
Membre
-
steller91 Messages postés 30 Statut Membre -
steller91 Messages postés 30 Statut Membre -
Bonjour à tous,
Pour un de mes sites j'utilise une base de donnée dont les informations sont stocké sous la forme suivant:
Pour récupérer ces informations j'utilise du php et notamment la fonction explode avec le séparateur point-virgule:
Mon problème étant que mon explode me pose problème avec les apostrophes, c'est à dire que, au lieux d'avoir (dans mon exemple) quatre résultats ( «Bonjour», «Bonsoir», «Bonne nuit» et «Bon'ap») j'en ai cinq ( «Bonjour», «Bonsoir», «Bonne nuit», «Bon'» et «ap» ).
J'ai tenté de mettre dans ma bdd des antislash mais rien à faire.
Si quelqu'un à une idée je suis preneur car je ne vois pas pourquoi.
Merci d'avance
Steller
Pour un de mes sites j'utilise une base de donnée dont les informations sont stocké sous la forme suivant:
$values = "Bonjour;Bonsoir;Bonne nuit;Bon'ap";
Pour récupérer ces informations j'utilise du php et notamment la fonction explode avec le séparateur point-virgule:
explode( ";", $values );
Mon problème étant que mon explode me pose problème avec les apostrophes, c'est à dire que, au lieux d'avoir (dans mon exemple) quatre résultats ( «Bonjour», «Bonsoir», «Bonne nuit» et «Bon'ap») j'en ai cinq ( «Bonjour», «Bonsoir», «Bonne nuit», «Bon'» et «ap» ).
J'ai tenté de mettre dans ma bdd des antislash mais rien à faire.
Si quelqu'un à une idée je suis preneur car je ne vois pas pourquoi.
Merci d'avance
Steller
A voir également:
- Problème avec explode et les apostrophes
- Gérer apostrophes , double cote sql ✓ - Forum Webmastering
- Comment faire avec une apostrophe ✓ - Forum Linux / Unix
- Javascript et apostrophe - Forum Javascript
- Problème touche apostrophe - Forum Clavier
- Problème avec apostrophe + mise en page globale - Forum Word
4 réponses
Après plusieurs test est notamment en faisant un var_dump sur ma variable $values j'ai remarqué que l'apostrophe à une longueur de 5 or les autre caractère on une longueur logique de 1 (y compris les caractère accentué).
Résultat:
Et le résultat avec un espace à la place de l'apostrophe:
Je n'ai toujours pas trouvé de solution donc je suis preneur au plus offrant ^^.
Merci d'avance
var_dump( $values ); // avant le passage de l'explode
Résultat:
string( 37 ) "Bonjour;Bonsoir;Bonne nuit;Bon'ap"
Et le résultat avec un espace à la place de l'apostrophe:
string( 33 ) "Bonjour;Bonsoir;Bonne nuit;Bon ap"
Je n'ai toujours pas trouvé de solution donc je suis preneur au plus offrant ^^.
Merci d'avance
Bonjour,
À mon avis, dans ta base de donnée, ce n'est pas le caractère apostrophe « ' » qui est stocké, mais son code html : & #39;, qui fait bien 5 caractères, et se termine par un ;
Du coup, avant de faire ton explode, il faudrait que tu convertisses les caractères spéciaux :
explode( ";", htmlspecialchars_decode($values, ENT_QUOTES));
Xavier
À mon avis, dans ta base de donnée, ce n'est pas le caractère apostrophe « ' » qui est stocké, mais son code html : & #39;, qui fait bien 5 caractères, et se termine par un ;
Du coup, avant de faire ton explode, il faudrait que tu convertisses les caractères spéciaux :
explode( ";", htmlspecialchars_decode($values, ENT_QUOTES));
Xavier