Vous n'êtes pas identifié(e).
Bonjour,
je souhaite recupérer tous les mots affichés dans une page web, c'est-à-dire tous les mots, sans les balises le formatage, mais avec les accents et autres caractères spéciaux.
Je propose la fonction suivante :
On suppose que les pages webs sont encodées en 'dur', c'est-à-dire que le " é " afiché dans le navigateur est un " é " dans la source.
J'ai le problème suivant : les caractères spéciaux ne sont pas récupérés correctement.
Problèmes d'encodage ?
Merci
Hors ligne
Salut,
Quand tu dis que les caractères spéciaux ne sont pas récupérés correctement, qu'as tu à la place ?
é ?
Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop
Hors ligne
Justement non
Exemple :
" catégories " pour " catégories " (et j'ai bien vérifié que dans la source apparait " catégories ")
Hors ligne
C'est donc bien un problème d'encodage.
Et ce n'est souvent pas simple à régler
Est ce qu'un "charset" est mentionné dans la source ?
Ensuite pour convertir, tu as la fonction iconv.
Bon courage...
Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop
Hors ligne
charset=UTF-8
Quel type de convertion utliser ?
Le problème peut-il venir de l'utilisation des fonctions tels que strip_tags() ?
=> Après un nouveau test...le problème vient de la lecture de plusieurs pages...c'est-à-dire que je boucle ma fonction et c'est ce qui semble poser problème.
En effet, si je ne traite qu'une seule page, cela fonction bien.
D'autres idées ?
Je suppose que toutes les pages sont encodées de la même façon.
Dernière modification par moijhd (13-06-2009 13:43:21)
Hors ligne
Le problème peut-il venir de l'utilisation des fonctions tels que strip_tags() ?
Normalement non.
=> Après un nouveau test...le problème vient de la lecture de plusieurs pages...c'est-à-dire que je boucle ma fonction et c'est ce qui semble poser problème.
C'est étonnant.
Tente une conversion vers iso-8859-1...
As tu essayer d'ouvrir le fichier créé avec différent éditeurs de textes ?
Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop
Hors ligne
Très affreux : j'ai donc deux fichiers textes fichier.txt (9MO) et fichier1.txt (9ko), quand j'ouvre les deux avec WordPad, j'obtiens la même chose (avec le " é " moche) mais quand j'ouvre avec Bloc-Note, j'obtiens fichier.txt avec le " é " moche et le fichier1.txt avec le " é " é !
Hors ligne
Hé bé
Tu peux essayer aussi de forcer l'écriture du fichier en mode binaire (bien qu'il me semble que ce soit l'option par défaut).
$file = fopen('fichier.txt','a+b');
Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop
Hors ligne
No changes
Hors ligne
Tu peux aussi utiliser la fonction : utf8_decode qui te convertira directement la chaine en ISO.
Promotion de PPOO : Programmation Propre Orientée Objet !!
Recommande AAO : Apéritif Avec Olives...
Glop, glop
Hors ligne
J'ai déjà utlisé cela dans tous les sens je crois
Je vais re-regarder ça un peu tout seul, voir si je ne peux pas inverser des étapes, en ajouter...
Merci pour votre aide.
Hors ligne
Ce que je pense :
L'encodage de la page web que tu récupère est en UTF-8 le système sur lequel tu exécute PHP est paramétré pour fonctionner en ISO et c'est pour ça que lorsque tu écris dans un fichier il doit le faire par défaut en ISO => é
essaye comme ça :
La programmation est composée de 80% de réflexion pour 20% de syntaxe -> réfléchissez à votre problème par étapes
Recommande l'utilisation du pattern Singleton
Si jamais je poste un morceau de code pour vous aider, prenez bien compte que je n'ai pas forcément testé le code que je poste et qu'il est possible qu'il contienne des erreurs
Hors ligne