تلقى رؤوس HTTP غير صحيح/غير متوقعة بالنسبة XSL نوع الملف
-
05-07-2019 - |
سؤال
أنا باستخدام PHP+حليقة إلى استرداد ملف XSL, ولكن أولا أريد أن أفعل بعض الحد الأدنى التحقق من أن الملف هو في الحقيقة ملف XSL.
أنا تأكد من وجود الملف ، رمز الحالة 200 موافق ، وأنه قد الصحيح امتداد الملف ولكن بعد ذلك أريد أن تحقق رأس نوع محتوى.لقد فعل هذا باستخدام curl_getinfo()
وظيفة.كل شيء على ما يرام.
ولكن XSL الملفات دائما العودة "application/xml
"أو "text/xml
"مثل نوع المحتوى ، والتي هي ملفات XML.أنا أعتقد أن XSL ينبغي أن يكون رأس "application/xslt+xml
".إذا ما الذي يحدث هنا و كيف أتأكد انها XSL الوثيقة ؟
المحلول
ويمكنك التحقق من مساحة XSLT في الملف.
إذا PHP النسخة> = 5.1.2، استخدم SimpleXMLElement::getNamespaces()
أ >
نصائح أخرى
هل تستخدم هذه للوصول إلى مواقع طرف ثالث أو الموقع الذي قمت بتكوين نفسك؟ اذا كان موقعك، وكنت بحاجة إلى إعداد أباتشي لخدمة أنواع التمثيل الصامت المناسبة تبعا لامتداد الملف.
إذا انها مواقع الطرف الثالث، وأنا لست متأكد من أنك يمكن الاعتماد على أنواع التمثيل الصامت، لأنها يمكن أن تكون ما يريدون. أفضل رهان هو على الارجح لمجرد الحصول على الأسطر القليلة الأولى من الملف وتحقق من أن العنصر الجذر هو XSL.
مقاربة مختلفة, PHP 5:
- هل يمكن أن تحاول تحميل الأنماط في XSLTProcessor.ربما يتم طرح استثناء إذا كان الأنماط غير صحيحة
- (أفضل IMHO) التحقق من صحة على نمط XSL ضد مخطط