Recherche dans le code source d'un fichier html

Petit nouveau ! | 5 Messages

24 sept. 2009, 20:27

Bonsoir à tous :)

Voila, je suis en train de créer un scripte PHP qui me permettra in fino de pouvoir rechercher une chaine de caractère dans mes historique de conversation msn qui sont enregistrer au forma HTML.

Mais premier soucis, lorsque j'ouvre le fichier avec la fonction fopen, j'obtient ce genre de chose :

�n�t�e�n�t�-�T�y�p�e�"� �c�o�

Autant dire qu'une recherche séquentielle d'une chaine de caractères la dedans est complètement impossible...

Ce qui m'amène à ma première question : Quelqu'un aurait-il une solution pour éviter que ce genre de chose se produise ?

Si il n'est pas possible de supprimer ce genre de chose, j'ai trouver une autre solution : récupérer directement le code source de la page html, afin de faire la recherche séquentielle directement dessus.
Est ce qu'il est possible de faire une tel chose en PHP ?

Si vous avez d'autres solutions, je suis preneur !

Ah oui, j'ai testé mon scripte avec un fichier texte, il marche nickel ! Je l'ai testé aussi avec une page internet, et ça marche impeccable aussi... Il n'y a que sur ces historiques de conversation que ça coince :(

Merci d'avance pour votre aide !

Mammouth du PHP | 985 Messages

24 sept. 2009, 20:50

Erreur Typique d'encodage.
Vérifie dans quel encodage les documents ont été enregistré.
Et vérifie ensuite quel est encodage que le serveur envoie dans les headers.
Puis vérifie ensuite quel encodage est spécifié dans les balises métas des documents.
Il faut que cela soit le même.
Et l'encodage doit être en Iso ou en UTF-8.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Petit nouveau ! | 5 Messages

24 sept. 2009, 21:01

Effectivement, bien vu, mon fichier est enregistrer en UTF-16

Et le serveur me renvoi du UTF-8...

Donc ça vient surement de là ! Mais comment régler le problème ?

Mammouth du PHP | 985 Messages

24 sept. 2009, 22:10

Je ne connais pas les bugs possibles entre UTF-16 et UTF-8, je n'ai jamais eu ce cas...
Mais tu peux tester en enregistrant le fichier en UTF-8 , ou si cela ne t'es pas possible car il est généré par un autre programme, alors convertir les caractères UTF-16 vers UTF-8...
Si Bien sûr, c'est la cause du problème...

[EDIT]
Sinon, peut-être ici:
http://www.moddular.org/log/utf16-to-utf8
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Petit nouveau ! | 5 Messages

24 sept. 2009, 22:31

Merci beaucoup, j'ai réglé mon problème :)

Pour ceux qui ont le même problème, voila comment proceder :

Il existe en PHP une fonction iconv qui permet de convertir d'un encodage à un autre.

Elle fonctionne comme suis
==> iconv ("encodage_de_la_page_actuel", "encodage_qu'on-veut_obtenir","chaine à modifier")

Merci Dr@ke pour ton coup de main :)

@++