PHP et les parseur SGML

Résolu
LePueblo Messages postés 3 Date d'inscription vendredi 3 octobre 2008 Statut Membre Dernière intervention 7 octobre 2008 - 6 oct. 2008 à 16:15
LePueblo Messages postés 3 Date d'inscription vendredi 3 octobre 2008 Statut Membre Dernière intervention 7 octobre 2008 - 7 oct. 2008 à 10:02
Bonjour!

Je cherche à décomposer un fichier SGML en langage PHP. Mon problème est le suivant:

- php ne semble pas reconnaitre les charactères qui correspondent aux balises: "<" et ">".
En effet, lorsque je fais:

<?php
$montexte="B";
echo $montexte;
?>

Mon navigateur (je travaille avec EASYPHP) m'affiche uniquement:

B

- les fonctions prévues pour parser du XML (les arbres DOM, les parseurs etc...) ne fonctionnent pas, car le SGML n'a pas forcement les valeurs de ses attributs entre guillemets.

Si vous avez des suggestions, n'hésitez pas, je suis assez désespéré....
Merci d'avance!

3 réponses

LePueblo Messages postés 3 Date d'inscription vendredi 3 octobre 2008 Statut Membre Dernière intervention 7 octobre 2008
7 oct. 2008 à 10:02
Re bonjour, après essais ça passe toujours par le html si on utilise printf, print ou sprintf.
Par contre si on transforme le SGML en XML on peut utiliser finalemetn tous les arbres DOM et autres solutions plus que pratiques.

Pour cela il faut opérer des changement sur le texte SGML:
- ouvrir le fichier en question (fopen)
- le lire (fread)
- opérer un preg_replace sur le contenu pour le faire devenir du XML. En particulier pour les attributs des balises qui sont écrits comme ceci en SGML:
pour qu'ils soient comme en XML, comme ceci:

Voici le preg_replace que j'ai opéré, il prend vérifie tout de même si certaines valeurs ne sont pas déjà entre guillemets (ce qui est le cas dans mon malheureux fichier):
$test=preg_replace('`=(([^" >])+)[ >]`','="$1" ' ,$test);

N'hésitez pas à me contacter si vous avez le même problème que moi!
3
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
6 oct. 2008 à 17:51
salut

ton premier probleme n'a aucun rapport avec le php... php envoie du html a ton navigateur, et une balise qui n'a ni href ni name, ce n'est pas une balise a, donc ca t'affiche uniquement le texte, c'est normal...

bon, ensuite, tu peux chercher des parseurs plus "ouverts" genre tidi (qui accepte le html)
0
LePueblo Messages postés 3 Date d'inscription vendredi 3 octobre 2008 Statut Membre Dernière intervention 7 octobre 2008
7 oct. 2008 à 08:00
Okay merci, je m'en doutais, mais je ne sais toujours pas comment contourner ça. Je vais essayer de voir avec un printf ce que ça donne.
Le soucis, c'est que si je veux distribuer mon appli, chaque personne devraavoir tidi, non?
0
Rejoignez-nous