2012-06-18 24 views
-1

如何正確寫入?

for($i=2;$i<5;$i++) 
{ 
    $items{$i} = $doc{$i}->getElementsByTagName('url'); 
} 

得到了一個錯誤:

Fatal error: Call to a member function getElementsByTagName() on a non-object

謝謝,再見

回答

0

這個測試工作對我來說: -

$html1 = "<html><head><title>Test</title></head><body><p>Doc1 P1</p><p>Doc1 P2</p></body></html>"; 
$html2 = "<html><head><title>Test</title></head><body><p>Doc2 P1</p><p>Doc2 P2</p></body></html>"; 

$doc1 = new DOMDocument(); 
$doc1->loadHTML($html1); 
$doc2 = new DOMDocument(); 
$doc2->loadHTML($html2); 

for($i=1;$i<3;$i++){ 
    var_dump(${'doc'.$i}->getElementsByTagName('p')); 
} 

所以,你的代碼應該是這樣的: -

for($i=2;$i<5;$i++) 
{ 
    ${'items'.$i} = ${'doc'.$i}->getElementsByTagName('url'); 
} 

,除非你是爲$項目是一個數組,在這種情況下,它應該是像這樣: -

for($i=2;$i<5;$i++) 
{ 
    $items[] = ${'doc'.$i}->getElementsByTagName('url'); 
} 
+0

您的代碼似乎很好...我繼續尋找爲什麼在我的,它不能很好地工作... – ibasaw

+0

你的不同,改變它與我的一樣,它會工作。 – vascowhite

+0

好的,我發現我的問題...在循環中,變量名稱是錯誤的 – ibasaw

2

嘗試:

$ndoc = 'doc'. $i; 
$items[$i] = $$ndoc->getElementsByTagName('url'); 

或:

$ndoc = 'doc'. $i; 
$items[$i] = ${$ndoc}->getElementsByTagName('url'); 
+0

+1這就是「halwa」問題 – Sarfraz

+0

沒有得到同樣的錯誤 – ibasaw

+0

一個變量,這是DOM文檔 – ibasaw

相關問題