2009-04-28 11 views
0

utilisant php DOMDocument- de> loadHTMLFile ('test.html'); continue à me renvoyer une erreur, en signalant une erreur dans le contenu de la ligne 36. En supprimant caractère après caractère, il s'avère que c'est un espace apparemment vide qui était le coupable. Copier/coller cette phrase dans un autre éditeur (Editra), a montré un caractère RS étrange.PHP DOMDocument: loadHTMLFile étouffement sur un mystérieux personnage: RS

Qu'est-ce, et plus important encore, comment puis-je éviter que cela se reproduise?

+0

Et quelle est la chaîne d'erreur? –

Répondre

5

Il est un Record separator

Peut être utilisé comme délimiteurs pour marquer les champs de structures de données. S'il est utilisé pour les niveaux hiérarchiques, US est le niveau le plus bas (divisant les éléments de données en texte brut), tandis que RS, GS et FS sont de niveau croissant pour diviser les groupes constitués d'éléments du niveau inférieur.

SEQ: ^^ - Dec: 30 - Hex: 1E - Acronyme: RS

Ce que vous pouvez faire est d'utiliser strtr() pour dépouiller les caractères non visibles. An example by Joel Degan on PHP.net devrait vous mettre sur votre chemin.

0

Si je me souviens, PHP est de lancer une erreur non fatale dans ce cas. Il va se plaindre de beaucoup de choses, que vous ne pouvez rien faire si le fichier n'est pas créé par vous. Ce que vous pouvez faire, c'est utiliser de mauvaises pratiques de programmation et supprimer les erreurs en mettant @ avant la commande.

@DOMDocument->LoadHTMLFile('test.html'); 

Il devrait toujours charger le fichier, mais vous "ignorerez" les erreurs. L'ignorance est le bonheur?

+0

qui est exactement le problème: le fichier ne se fait pas par moi, et le problème est que le nodeValue chargé est recadrée à l'emplacement du caractère RS ... Je suppose que je ferais mieux de montrer un grand signe d'erreur à l'utilisateur dans ce case ... – pixeline

+0

À droite, vous ne contrôlez pas le fichier, c'est pourquoi vous supprimez les erreurs. Si vous chargez n'importe quel site Web dans DOMDocument, cela entraînera une erreur. Mais si vous supprimez les erreurs avec @, vous devriez pouvoir charger le document. Cela vaut la peine d'essayer car c'est si facile à faire. –

+0

il supprime l'avertissement mais le problème est que le html n'est pas analysé passé ce caractère d'erreur. – pixeline