2013-08-07 64 views
0

嗨,我想結合兩個foreach循環,但我有一個問題。PHP foreach有兩個'as'?

問題是<a href='$link'>與所有結果相同,但它們必須不同。

這裏是我使用的代碼:

<?php 
$feed = file_get_contents('http://grabo.bg/rss/?city=&affid=16090'); 

$rss = simplexml_load_string($feed); 

$doc = new DOMDocument(); 
@$doc->loadHTML($feed); 

$tags = $doc->getElementsByTagName('link'); 

foreach ($tags as $tag) { 
    foreach($rss as $r){ 
     $title = $r->title; 
     $content = $r->content; 
     $link = $tag->getAttribute('href'); 
     echo "<a href='$link'>$title</a> <br> $content"; 
    } 
} 

?> 

我在哪裏我的錯誤?爲什麼它不工作,我如何使它正常工作? 在此先感謝!

+1

您遇到了什麼問題? – jh314

+0

是否有錯誤消息或什麼? – Joni

+0

問題是所有結果的'都是一樣的。 –

回答

0

兩個循環都經歷了不同的資源,因此您只是簡單地將它們中的所有記錄交叉連接起來。

這應該得到你需要的數據:

<?php 
$feed = file_get_contents('http://grabo.bg/rss/?city=&affid=16090'); 
$rss = simplexml_load_string($feed); 

foreach ($rss as $key => $entry) { 
    if ($key == "entry") 
    { 
     $title = (string) $entry->title; 
     $content = (string) $entry->content; 
     $link = (string) $entry->link["href"]; 
     echo "<a href='$link'>$title</a><br />" . $content; 
    } 
} 
+0

我還有兩個問題: 1 - 我如何獲得第一個''標籤中包含的值? 2 - 我如何得到和解碼版本的內容沒有任何HTML代碼在裏面。像純粹的純文本,所以可以插入這個版本在我的MySQL表。 –

+0

要刪除標籤請使用strip_tags功能:http://php.net/manual/en/function.strip-tags.php –

+0

Okey,謝謝!但我怎麼能得到''標籤的值? –