Question

J'utilise PHP + curl pour récupérer un fichier XSL, mais je souhaite tout d’abord faire une validation minimale du fait qu’il s’agit bien d’un fichier XSL.

Je m'assure que le fichier existe, qu'il a le code d'état 200 OK et qu'il porte l'extension de fichier correcte, mais je souhaite ensuite vérifier l'en-tête du type de contenu. Je le fais en utilisant la fonction curl_getinfo () . Tout va bien.

Mais les fichiers XSL renvoient toujours le " application / xml " ou " text / xml " comme Content-Type, qui est destiné aux fichiers XML. Je pense qu'un en-tête XSL devrait être " application / xslt + xml ". Alors, que se passe-t-il ici et comment puis-je m'assurer qu'il s'agit d'un document XSL?

Était-ce utile?

La solution

Vous pouvez vérifier l'espace de noms XSLT dans le fichier. Si la version PHP > = = 5.1.2, utilisez SimpleXMLElement :: getNamespaces ()

Autres conseils

Utilisez-vous cela pour accéder à des sites tiers ou à un site que vous configurez vous-même? S'il s'agit de votre propre site, vous devez configurer Apache pour qu'il prenne en charge les types de mime appropriés, en fonction de l'extension du fichier.

S'il s'agit de sites tiers, je ne suis pas sûr que vous puissiez compter sur les types de mime, car ils peuvent servir à leur guise. Le mieux est probablement d’obtenir les premières lignes du fichier et de vérifier que l’élément racine est xsl.

Approche différente pour PHP 5:

  1. Vous pouvez essayer de charger la feuille de style dans un processeur XSLTP . Peut-être qu'une exception est levée si la feuille de style est incorrecte
  2. (Better IMHO) Valide la feuille de style XSL sur son schéma
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top