2011-07-23 54 views
1

使用php我想加載來自多個網站的XML文件,並希望在我的其中一個網站關閉時防止錯誤。我正在使用此代碼來訪問該網址。當試圖加載一個不可用的文件時避免錯誤

function get_xml($url){ 
$xmlDoc = new DOMDocument(); 
$xmlDoc->load($url); // This is the line causing errors 
$channel=$xmlDoc->getElementsByTagName('channel')->item(0); 
... 

如果沒有可用的$網址沒有XML飼料,我有很多錯誤信息,如:公共標識符

警告後所需的空間:

警告:DOM文檔:: load()方法: DOM文檔::負載():SystemLiteral「或」預期

警告:DOM文檔::負載():SYSTEM或PUBLIC,所述URI是缺少

警告:DOMDocumen t :: load():開始和結束標記不匹配:鏈接5和頭部

如果Feed不可用,可以如何防止$ url嘗試加載? 我已經試過:

if(file_exists($url)){ 
$xmlDoc->load('$url'); 
} 

而且事情的fopen和@load但我也一直在使用這些不正確。

回答

0

嘗試用:

if ([email protected]$xmlDoc->load($url)){ 
    return FALSE; 
} 

你的功能get_xml會立即返回FALSE如果方法load無法加載XML數據

+0

太棒了!我剛取代$ xmlDoc-> load($ url);與您的代碼,它在幾秒鐘內解決了幾個小時的頭痛!非常感謝。 –

+0

不客氣 –

1

理論上(如果我沒記錯的話),你應該能夠趕上這些錯誤使用libxml 功能(所以你叫對付他們自己,而不是讓它們顯示)


我特別想libxml_use_internal_errors()

libxml_use_internal_errors()允許您禁用標準的libxml 錯誤,並啓用用戶錯誤處理。


1.libxml是目前正使用內部由DOMDocument庫 - 和SimpleXML,順便說一句

相關問題