généré du XML à partir de PHP - et BBcode

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

généré du XML à partir de PHP - et BBcode

Message par lpgc »

Sujet 1 - Pour que le source XML soit correctement formatté

bonjour, :D

je génère du XML à partir de php et quand je regarde la source à partir du browser. Je n'ai qu' UNE seule ligne

Code : Tout sélectionner

<?xml version="1.0" encoding="ISO-8859-1"?><dvdlib><literal>test</literal><dvd>Star Trek 2 - La Colère de Khan</dvd><dvd>Star Trek - le Film</dvd><dvd>STAR TREK 10 : NEMESIS</dvd></dvdlib>
Comment puis je incorporer des LineFeed et des Tabulations :?:
pour avoir la source un peu plus présentable dans un éditeur de texte ( saut de ligne et indentation )

Je ne trouve pas mais je continue à chercher,
Si vous connaissez la réponse merci pour votre aide :D
Christian


Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Dernière modification par lpgc le 19 août 2006, 02:19, modifié 4 fois.
Nucleos
Lézard à collerette
Messages : 282
Inscription : 04 juil. 2003, 17:04

Re: généré du XML à partir de PHP

Message par Nucleos »

Si je réponds à ta question avec ce post, j'aimerais appuyé le fait que tu as mal posé ta question. Si je n'y réponds pas, j'aurais l'occasion de dire "je l'avais bien dit" 8-)

En tout cas, si tu veux avoir des tabulations et/ou des retours à la ligne, il faut utiliser des caractères spéciaux :

Code : Tout sélectionner

<?php echo "\n"; ?>
affichera un saut à la ligne par exemple. (Note bien que ce sont des guillemets doubles.)

Tu peux aussi utiliser des syntaxes alternatives (comme endif) pour utiliser moins de \n.
« La clarté est la politesse des professeurs. » (E. Gerurez)
... Posons de bonnes questions !
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

merci pour la réponse, :D
j'aimerais appuyer le fait que tu as mal posé ta question
Je n'ai jamais su poser les bonnes questions malgré des efforts considérables pour essayer de m'améliorer :wink:

Je vais quand même essayer d'être plus clair:
Dans le Menu Affichage du browser Firefox :
Il y a la fonction : Code Source de la page

En cliquant dessus on voit le XML

Code : Tout sélectionner

<?xml version="1.0" encoding="ISO-8859-1"?>\n<dvdlib>\n<literal>test</literal><dvd>Star Trek 2 - La Colère de Khan</dvd><dvd>Star Trek - le Film</dvd><dvd>STAR TREK 10 : NEMESIS</dvd></dvdlib>
J'aimerais bien que le XML soit présenté avec des sauts de lignes pour que les tags soient mieux visibles

L'astuce du \n j'avais déjà essayé mais pour le XML çà n'a pas l'air de fonctionner

J'espère que j'ai un peu mieux expliqué... pas sûr :oops:
Cordialement :D
Christian

PS. FIrefox est assez conciliant on voit les \n sur le browser et dans la source
Par contre IE plante

PS 2 . Vous l'aviez bien dit... :wink:
Ceci dit en PHP, je crois que l'on peut commencer une string
avec simple quote ou double quote. Exactement la même chose qu'en JS

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

Sujet 2 :D

çà commence à fonctionner :

Le serveur m'envoie du XML à partir d'un script PHP
J'ai un autre problème :

Code : Tout sélectionner

Erreur d'analyse XML : mal formé
Emplacement : http://localhost/dvdpreview/mydvd1.php
Numéro de ligne 1, Colonne 1004 :
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?><dvd>Le Président et Miss
 Wade</dvd><dvd>ASTERIX & OBELIX : MISSION CLEOPATRE</dvd>
----------------------------------------------------------------------------------------
----------------------^
Je suppose que c'est le & qui pose problème.
Que dois je faire :?:
Je risque très certainement aussi d'avoir des problèmes avec des Saut de Ligne LF se trouvant dans les data :?:

Merci
Christian

PS. Quand je fais View Source à partir du Menu, le XML est complétement généré
et c'est même mes quelques LF des data qui provoquent des Sauts de Lignes...
:idea: C'est peut être une piste à suivre pour résoudre le sujet 1- :!:

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
HP
Tyrannosaurus Rex
Messages : 2196
Inscription : 21 oct. 2004, 10:25

Message par HP »

lpgc a écrit :Je suppose que c'est le & qui pose problème.
Que dois je faire :?:
http://fr2.php.net/manual/fr/function.h ... lchars.php
htmlspecialchars -- Convertit les caractères spéciaux en entités HTML
"&" (et commercial) devient "&"

“La médiocrité obtiendra immanquablement la préséance en se travestissant des oripeaux de la bienséance.”
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

Merci, :D ... c'est génial ! çà fonctionne hyper bien ...

Code : Tout sélectionner

	$data = $data.'<dvd>'.htmlspecialchars( $dvdlibel, ENT_QUOTES, "ISO-8859-1" ).'</dvd>';
Je venais juste de trouver une fonction similaire :
htmlentities( $dvdlibel, ENT_QUOTES, "ISO-8859-1" )
mais qui engendre à son tour d'autres erreurs :
Référence à l'entité non définie 'egrave'.

:idea: Et dans le XSLT si nécessaire on peut même utiliser la fonction inverse, je suppose :!:

Vous n'auriez pas une solution pour le sujet 1- à tout hasard :?:
C'est pas indispensable puisque çà fonctionne, mais voir le source du xml dans cet état :cry:

Merci :D
Christian

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
HP
Tyrannosaurus Rex
Messages : 2196
Inscription : 21 oct. 2004, 10:25

Message par HP »

lpgc a écrit :Vous n'auriez pas une solution pour le sujet 1- à tout hasard :?:
C'est pas indispensable puisque çà fonctionne, mais voir le source du xml dans cet état :cry:
si il s'agit des sauts de ligne :

Code : Tout sélectionner

$data = $data.'<dvd>'.htmlspecialchars( $dvdlibel, ENT_QUOTES, "ISO-8859-1" ).'</dvd>'."\n";
bien mettre les doubles quotes ...
ça a déjà été dit.

“La médiocrité obtiendra immanquablement la préséance en se travestissant des oripeaux de la bienséance.”
Asumbaa
Tyrannosaurus Rex
Messages : 2411
Inscription : 08 déc. 2004, 20:07

Message par Asumbaa »

Salut,
lpgc a écrit :Ceci dit en PHP, je crois que l'on peut commencer une string
avec simple quote ou double quote. Exactement la même chose qu'en JS
HS a écrit :bien mettre les doubles quotes ...
ça a déjà été dit.
Simple ou double, c'est pas pareil quand tu as à l'intérieur, non pas une chaine de caractères, mais quelque chose à interpréter. Le serveur PHP interprète ce que tu mets entre guillemets, pas ce que tu mets entre simple quotes. C'est comme ça qu'il transform "\n" en un saut de ligne.

Pour la tabulation, c'est "\t".
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

Mes excuses à Nucleos :oops: , il faut effectivement des guillemets doubles
ET merci à Asumbaa pour l'explication, c'est mon 2ième p'tit truc en PHP autant dire que je n'y connais rien :roll:

Tout fonctionne très bien, MERCI :D

PS. Le temps de réponse est par contre doublé, Je ne sais pas si c'est le browser qui interprète,
ou si c'est le serveur qui met plus de temps à rajouter les "\n"
mais de ce fait je préfère les enlever.
:idea: Pour des fichiers XML pas trop volumineux çà reste très utile
Merci


Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

:D Que puis je faire avec ce XML ?

Je sais que l'on peut si je ne me trompe pas : ( pas beaucoup d'expérience en XML.... :roll: )
1- ajouter une feuille de style xsl :

Code : Tout sélectionner

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="mydvd.xsl"?>
2- j'ai aussi la possibilité je crois des Data Island pour le XML

Code : Tout sélectionner

<html>
<body><xml id="note" src="dvdtheque.xml?pseudo=lpgc"></xml></body>
</html>
3- et de transformer la feuille soit au niveau Client
avec du Javascript
soit du côté Serveur
:?: 4- d'autres possibilités ?

Pour le point 2- : On effectue du php mais on reçoit du xml
Quelle est la bonne extension : xml ou php ?

Pas très clair tout cela Faut que j'y réfléchisse encore un peu

Une question quand même :
Le XML que je viens de généré, tout le monde peut en faire ce qu'il veut :?:
Je veux dire par là que si quelqu'un décide de faire sa propre feuille de style.
Quelle méthode faudrait il employer pour que ce XML soit visible sur son propre site :?:
:idea: Je suppose que la 1 ère xml et xslt dans le même fichier c'est exclu...
:shock: Et si mon site ne fonctionne pas.. il ne reçoit pas son XML et son site alors... :evil:

Merci :D
Christian

PS. Dans le Post suivant : ( j'arrive pas à taper assez vite :wink: )
Il pèse combien ton xml ?
Pas beaucoup 4000 lignes pour le moment d'une base MySQL => environ 7 secondes en local, avec les \n : 15 sec

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Dernière modification par lpgc le 14 août 2006, 19:08, modifié 2 fois.
HP
Tyrannosaurus Rex
Messages : 2196
Inscription : 21 oct. 2004, 10:25

Message par HP »

lpgc a écrit :PS. Le temps de réponse est par contre doublé, Je ne sais pas si c'est le browser qui interprète,
ou si c'est le serveur qui met plus de temps à rajouter les "\n"
mais de ce fait je préfère les enlever.
:idea: Pour des fichiers XML pas trop volumineux çà reste très utile
Il pèse combien ton xml ?

Y a pas de risque que ce soit le navigateur qui interprète du php ;)
à part que ton fichier soit "énorme", je ne pense pas que le calcul des "\n" puisse avoir un impact visible sur la génération.

Je ne sais pas si tu tapes dans une base de données (SQL), mais pense alors à une solution de cache comme PEAR/Cache_Lite par exemple (c'est ce que j'utilise).

“La médiocrité obtiendra immanquablement la préséance en se travestissant des oripeaux de la bienséance.”
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

bonjour, :D
Merci de jeter un oeil sur le post juste avant celui de HP
:oops: Il n'est pas vraiment dans l'ordre et je ne sais pas s'il a été vu sur le Forum
Cordialement
Christian

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
HP
Tyrannosaurus Rex
Messages : 2196
Inscription : 21 oct. 2004, 10:25

Message par HP »

lpgc a écrit :bonjour, :D
Merci de jeter un oeil sur le post juste avant celui de HP
:oops: Il n'est pas vraiment dans l'ordre et je ne sais pas s'il a été vu sur le Forum
arf ! pas évident à comprendre tout çà ! :lol: :roll:
bon, je vais lire, et après peut être que j'éditerais mon post si j'en fais pas un nouveau ...
Pour le point 2- : On effectue du php mais on reçoit du xml
Quelle est la bonne extension : xml ou php ?

sur le web, comme sur tout système Unix si je ne trompe :wink: , l'extension n'a pas d'importance, il suffit d'envoyer le fichier avec le bon mimetype, surtout quand il généré par php, ça se fait avec la fonction header
exemple :

Code : Tout sélectionner

header("Content-type: text/xml; charset=ISO-8859-1");
on définit ici (dans l'exemple) le mimetype et l'encodage.

de la même manières avec les bons entêtes, on peut générer des images avec des extensions '.php'.

Quelle méthode faudrait il employer pour que ce XML soit visible sur son propre site
Bien, si la personne est intéressée, il faudrait qu'elle utilise alors un parser comme magpieRSS, par exemple.
Le parser accède au XML, le lit, met en cache (si c'est un bon parser) les infos du XML et retourne celles-ci dans un format affichable et lisible de tous : HTML (ces actions se produisent alors à chaque affichage de la page, sauf la mise en cache qui est fonction de la configuration et du temps qui passe).
lpgc a écrit :PS. Dans le Post suivant : ( j'arrive pas à taper assez vite :wink: )
Il pèse combien ton xml ?
Pas beaucoup 4000 lignes pour le moment d'une base MySQL => environ 7 secondes en local, avec les \n : 15 sec
c'est bizarre que le temps d'exécution puisse être doublé avec de simples acractères de formatage (retours chariot), à moins que ça ne trahisse un défaut de conception du script (lourdeur ?)
4000 lignes, j'ai du mal à m'imaginer ce que ça donne en kilo-octets :wink: , tu affiches ton XML dans IE et tu fais clic droit propriétés et tu lis le poids indiqué (avec Firefox, j'ai l'impression que ça tient compte de la compression et j'ai remarqué que le poids était souvent "sous estimé" avec le XML comme le HTML)

voilà

“La médiocrité obtiendra immanquablement la préséance en se travestissant des oripeaux de la bienséance.”
lpgc
Lézard à collerette
Messages : 259
Inscription : 16 juil. 2006, 01:02

Message par lpgc »

Hyper Merci pour l'aide, :D

Voici le résultat : http://www.dvdlib.be/dvdtheque/mydvd.php?pseudo=lpgc

Juste une question idiote, ( je sais c'est pas le rôle du XML :wink: )

Quand je vois le XML dans le browser... Je me demandais s'il était possible
de mettre un lien sur le commentaire : <a href...

Code : Tout sélectionner

<!--  DVDThèque sur http://www.dvdlib.be/dvdpreview/dvdnew6.asp 
  --> 
Merci :D
Christian

PS. C'était ma 2ième page en PHP 8-) ... J'aime bien PHP !

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Nucleos
Lézard à collerette
Messages : 282
Inscription : 04 juil. 2003, 17:04

Message par Nucleos »

lpgc a écrit :Juste une question idiote, ( je sais c'est pas le rôle du XML :wink: )

Quand je vois le XML dans le browser... Je me demandais s'il était possible
de mettre un lien sur le commentaire : <a href...

Code : Tout sélectionner

<!--  DVDThèque sur http://www.dvdlib.be/dvdpreview/dvdnew6.asp 
  --> 
Je ne vois effectivement pas comment faire ça, à moins que tu y associes une feuille de transformation XSLT pour l'occasion. (Et encore, c'est vraiment se compliquer la vie... Je n'sais si c'est possible.)
« La clarté est la politesse des professeurs. » (E. Gerurez)
... Posons de bonnes questions !
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité