2009-01-13 3 views
8

ASP에서 원격으로 제공되는 XML 스톡 피드가 포함 된 PHP 기반 사이트 (예 : XML 피드 URL은 http://remote.com/client.asp)입니다.원격 파일이 PHP가 포함 된 올바른 형식의 XML인지 확인

피드가 자주 사용할 수 없기 때문에 (사이트에서 ASP 오류를 반환 함) 피드를 포함하기 전에 피드가 올바른 형식의 XML인지 확인하고 싶습니다. 내 평상시 url_exists 함수는 '오류 발생'일지라도 URL이 존재하기 때문에 속임수를 쓰지 않습니다.

TIA.

+1

참고 : 용어에주의하십시오. 여러분이 묘사하고있는 것은 "올바른"XML과 다른 무언가를 의미하는 "형식이 좋은"XML이라고 들립니다. – cletus

+0

바로 편집 해 주셔서 감사합니다. – da5id

답변

21

cURL을 사용하여 결과를 얻고 simplexml을 사용하여 XML이 well-formed인지 확인하십시오.

$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, "http://remote.com/client.asp"); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
$output = curl_exec($curl); 
curl_close($curl); 
if (simplexml_load_string($output)) { 
    // well-formed XML 
} else { 
    // it isn't 
} 
+0

고마워요. 나는 이미 그와 매우 유사한 것을 사용하고 있으며 종종이 스크립트는 오류를 던집니다. simplexml_load_file을 사용하고 있지만 simplexml_load_string과 차이가 있습니까? – da5id

+0

분명히 이제 모든 것이 이제는 좋았습니다. 답변을 수락 한 것으로 표시하여 다시 한 번 감사드립니다. – da5id

+0

SimpleXML에 문제가 있습니다. 매우 이상합니다. URL의 cURL 결과에서 URL의 simplexml_load_file() 및 simplexml_load_string()이 다른 결과를 가져올 수 있습니다. 다른 사람이 일할 수있는 동안 하나는 실패 할 수 ... 그것은 어떻게 된 일인지. 내 cURL 함수를 살펴 본다. – fred

관련 문제