5160 sujets

Le Bar du forum

Bonjour,

Chez 1&1, d'après phpinfo(), la version disponible de PHP est la 4.2.2, compilée avec
'--enable-xslt' '--with-xslt-sablot' '--with-dom' '--with-dom-xslt' '--with-dom-exslt'


J'aurais voulu savoir quelles solutions (quelle extension PHP ?) vous utilisez pour manipuler du XML (par transformation XSL) chez 1&1 ?

J'utilise xslt_create() et xslt_process(), mais par exemple DOMDocument::load($xml_file) ne fonctionne pas.

A la votre,

orlondow
Modifié par Orlondow (20 Feb 2006 - 09:43)
Bonjour,

Ce phpinfo() indique la présence de 2 API XSLT (première source de confusion). L'une utilisant sablotron, l'autre la librairie libxslt.
Je te conseille d'oublier la première (performances médiocres, API peu pratique, abandonnée en PHP5) au profit de la seconde.

Malheureusement (ou heureusement selon le point de vue) la librairie libxslt ne dispose pas de la même API en PHP4 et PHP5 suite à certaines améliorations. Donc il n'y a pas compatibilité du code : seconde source de confusion.

Pour synthétiser, dans la doc php regarde à :
- XSL pour API libxslt PHP5
- DOM XML pour l'API libxslt (et libxml) en PHP4
- XSLT pour l'API sablotron

Les fonctions que tu cites appartiennent à des mondes différents.
xslt_create() et xslt_process() API sablotron
DOMDocument::load($xml_file) API libxslt PHP5

Très rapidement l'API libxslt en PHP4, ce sont les fonctions :

$DomXml = domxml_open_file($xml_file);	                // on ouvre le site xml
$domstylesheet=domxml_xslt_stylesheet_file($xsl_file);	// la feuille de style devient un objet DOM
$dompagexhtml=$domstylesheet->process($DomXml,$PARAM);	// le miracle de la transformation XSLT
$pagexhtml= $dompagexhtml->dump_mem(true);		// l'objet DOM devient chaîne


Cependant si tu as la possibilité d'avoir PHP5, ce serait beaucoup mieux.
Merci pour ces éclaircissements précieux. J'avais (encore) tout confondu. En particulier, comme j'ai du PHP5 en local, et du PHP4 chez mon hébergeur, ça ajoute à ma confusion.

A priori, j'ai pas accès à PHP5 chez 1&1.

merci
Orlondow a écrit :
Merci pour ces éclaircissements précieux. J'avais (encore) tout confondu. En particulier, comme j'ai du PHP5 en local, et du PHP4 chez mon hébergeur, ça ajoute à ma confusion.

A priori, j'ai pas accès à PHP5 chez 1&1.

merci


Si, mais il faut préciser l'extension ".php5" ou faire un fichier .htaccess avec un ligne bizarre dedans pour que l'extension ".php" passe par php5 et pas par php4.
Oh ! merci pour cette info Lutin brocoliphage.


Donc voilà la manip: à la racine du site, créer un .htaccess contenant la ligne suivante:
AddType x-mapp-php5 .php

Et voilà ! Les scripts php sont interprétés avec la version 5.1.2.
(parce que renommer tous les fichier en .php5, c'est pas forcément évident, ou pratique)
+
Modifié par Orlondow (20 Feb 2006 - 09:38)