문제

PHP+CURL을 사용하여 XSL 파일을 검색하지만 먼저 파일이 실제로 XSL 파일이라는 최소 유효성 검사를하고 싶습니다.

파일이 존재하는지 확인하고 상태 코드 200 OK가 있고 올바른 파일 확장자가 있지만 컨텐츠 유형의 헤더를 확인하고 싶습니다. 나는 이것을 사용한다 curl_getinfo() 기능. 모두 괜찮습니다.

그러나 XSL 파일은 항상 반환됩니다. "application/xml" 또는 "text/xml"XML 파일의 콘텐츠 유형으로서 XSL 헤더가되어야한다고 생각합니다."application/xslt+xml". 그래서 여기서 무슨 일이 일어나고 있으며 XSL 문서인지 어떻게 확인할 수 있습니까?

도움이 되었습니까?

해결책

파일에서 XSLT 네임 스페이스를 확인할 수 있습니다. PHP 버전> = 5.1.2 인 경우 사용하십시오 SimpleXMLElement::getNamespaces()

다른 팁

이것을 사용하여 타사 사이트 또는 직접 구성하는 사이트에 액세스하고 있습니까? 자신의 사이트 인 경우 파일 확장자에 따라 적절한 MIME 유형을 제공하기 위해 Apache를 설정해야합니다.

그것이 제 3 자 사이트라면, 나는 그들이 원하는 것을 제공 할 수 있기 때문에 MIME 유형에 의존 할 수 있는지 확신하지 못합니다. 가장 좋은 방법은 아마도 파일의 첫 몇 줄을 얻고 루트 요소가 XSL인지 확인하는 것입니다.

PHP 5의 다른 접근법 :

  1. 스타일 시트를 안에로드하려고 시도 할 수 있습니다 xsltprocessor. 스타일 시트가 잘못되면 예외가 발생했을 수 있습니다.
  2. (더 나은 IMHO) 확인 스키마에 대한 XSL 스타일 시트
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top