在foreach中设置变量变量

时间:2013-07-10 01:02:32

标签: php loops foreach

我试图在$ feed_title变量中使用$ value。并生成所有200个$ feed_title变量。

我想要实现的目标如下:

Feed Url http://something.com/term/###/feed Feed标题:某些标题

###在100-300之间变化。

我正在使用以下代码,并获取网址,但不知道如何获取每个Feed的标题:

$arr = range(100,300); 

foreach($arr as $key=>$value) 
{ 
    unset($arr[$key + 1]);

    $feed_title = simplexml_load_file('http://www.something.com/term/'
     . ??? . '/0/feed');

    echo 'Feed URL: <a href="http://www.something.com/term/' . $value 
     . '/0/feed">http://www.something.com//term/' . $value 
     . '/0/feed</a><br/>  Feed Category: ' . $feed_title->channel[0]->title
     . '<br/>';
} 

我是否需要foreach内部的另一个循环?任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

如果您想获取页面标题,请使用此功能:

    function getTitle($Url){
    $str = file_get_contents($Url);
    if(strlen($str)>0){
        preg_match("/\<title\>(.*)\<\/title\>/",$str,$title);
        return $title[1];
    }
}

以下是一些示例代码:

<?php
function getTitle($Url){
    $str = file_get_contents($Url);
    if(strlen($str)>0){
        preg_match("/\<title\>(.*)\<\/title\>/",$str,$title);
        return $title[1];
    }
}

$arr = range(300,305); 
foreach($arr as $value) 
{ 

    $feed_title = getTitle('http://www.translate.com/portuguese/feed/' . $value);

    echo 'Feed URL: <a href="http://www.translate.com/portuguese/feed/' . $value . '">http://www.translate.com/portuguese/feed/' . $value . '</a><br/>
          Feed Category: ' . $feed_title . '<br/>';


}
?>

这是来自translate.com页面的标题。我只是限制页数以加快执行速度。

如果你想从xml获得标题,只需将getTitle更改为你的函数。

答案 1 :(得分:0)

不使用使用范围创建的数组,而是使用for循环,如下所示:

for($i = 100; $i <= 300; $i++){
     $feed = simplexml_load_file('http://www.something.com/term/' . $i . '/0/feed');
     echo 'Feed URL: <a href="http://something.com/term/' . $i . '/0/feed">http://www.something.com/term/' . $i . '/0/feed/</a> <br /> Feed category: ' . $feed->channel[0]->title . '<br/>';
}