2012-07-15 3 views
0

내 웹 사이트의 여러 페이지에서 다른 RSS 피드를 가져 오는 데 사용하는 클래스가 있습니다.RSS 피드가 작동하지 않으면 PHP 오류가 발생하지 않습니까?

내 문제는 피드 중 하나에 문제가있는 경우 (예 : 피드가 일시적으로 다운되는 경우) 치명적인 PHP 오류가 발생하여 사이트가 손상되는 것입니다.

$rawFeed = @file_get_contents("http://www.website.com/feed"); 
$xml = new SimpleXmlElement($rawFeed); 

이것은 RSS 피드를 가져 오는 데 사용하는 기본 코드입니다. new SimpleXmlElement은 궁극적으로 치명적인 오류를줍니다.

답변

1
libxml_use_internal_errors(true); 
try 
{ 
    $xml = new SimpleXmlElement('http://www.website.com/feed'); 
} catch(Exception $e) { 
    //nothing 
} 
+0

완벽한 감사합니다! –

1

file_get_contents은 오류 일 경우 false를 반환합니다.

이 같은 일을 시도 할 수 :

$rawFeed = @file_get_contents("http://www.website.com/feed"); 

if ($rawFeed) { 
    $xml = new SimpleXmlElement($rawFeed); 
} else { 
    // Deal with case that the feed wasn't read. 
} 

당신은 아마도 try/catch 블록에서 new SimpleXmlElement($rawFeed)을 포장하고 SimpleXmlElement가 구문 분석 예외가 발생하는 경우에 대한 처리를 추가 할 것입니다.

관련 문제