<?php
class MxitRSS {
function MxitRSS($rsslink,$noofposts = 3)
{
//'http://news.google.com/news?ned=us&topic=h&output=rss'
if($rsslink != NULL)
{
$rss = new DOMDocument();
$rss->load($rsslink);
$feed = array();
foreach ($rss->getElementsByTagName('item') as $node) {
$item = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
);
array_push($feed, $item);
}
for($x=0;$x<$limit;$x++) {
$randomnum= rand(5, 20);
$title = str_replace(' & ', ' & ', $feed[$x]['title']);
$link = $feed[$x]['link'];
$description = $feed[$x]['desc'];
$date = date('l F d, Y', strtotime($feed[$x]['date']));
echo '<strong>'.$title.'</strong><br />';
echo '<i>Posted on '.$date.'</i>';
echo '<br/><br/>'.$description.'<br/>';
echo '<br/><a href=index.php?page=article&id='.$randomnum.'><i>read more</i></a><br/>';
}
} else { }
}
}
?>
调用功能
<?php
include('rss.php');
$this -> MxitRSS('http://news.google.com/news?ned=us&topic=h&output=rss',3);
?>
我试图在另一个页面上调用上面的函数,但它无法正常工作。我是php的新手。我正在做的很好吗?
答案 0 :(得分:0)
使用类的正确方法是首先实例化它。但是因为在你的情况下classname等于methodname,你的方法是一个构造函数,并且会在类实例化后运行。 (如果你的php低于5.3。这个用法已被弃用,而__construct是命名构造函数的新方法)
$myClass = new MxitRSS('http://news.google.com/news?ned=us&topic=h&output=rss',3);
答案 1 :(得分:0)
实际上,因为你的类与函数同名,所以函数将作为构造函数,所以Volkan Ulukuts的回答将调用该函数两次,一次没有URL,一次调用。我不认为你想要那个。 击>
下面应该做你想做的事。
<?php
include('rss.php');
new MxitRSS('http://news.google.com/news?ned=us&topic=h&output=rss',3);
?>
值得注意的是,如果您将“MxitRSS”功能的名称更改为“__construct”,它的工作方式将完全相同,但会使IMO更加清晰。