2011-05-29 57 views
0

伙计们,从RSS中提取的锚文本

我累了我所有的PHP技能来提取一个RSS订阅域名字符串,并把每个域名作为一个数组元素,但一切都是徒劳:

这里是RSS:http://bulliesatwork.co.uk/master/dev/domp/expdom/domains.php

你是否看到一个域名列表,它们是锚定的?我需要的只是提取这些域名,如“abc.co uk”(在.co和.uk之间有一个空格),可以用str_replace删除 )。

这是我第一次尝试(使用SimpleHTMLDomParser)

require_once('simple_html_dom.php'); 

$html = file_get_html('http://bulliesatwork.co.uk/master/dev/domp/expdom/domains.php'); 

$domains = $html->find('div[class="entry"] a', 0); 

foreach($domains as $dom) 
{   
    echo str_replace(' ', '.', $dom->plaintext); 
} 

$html->clear(); 
unset($html); 

这是我的另一次尝试与DOM文档:

$scrapeurl = 'http://bulliesatwork.co.uk/master/dev/domp/expdom/domains.php';   

$keywords = file_get_contents($scrapeurl); 

$keywords = json_decode($keywords); 

foreach($keywords->responseData->results as $keyword) 
{  
    echo str_replace("...",".",$keyword->title).'<br/>'; 
} 

在这两种情况下,DOM文档创建,但它似乎文档除了我想要提取的域名外,还有所有信息。

请帮我解压缩域名。

干杯。

+0

对于rss你不需要简单的html dom,simplexml_load ...()会做很好的工作 – Ibu 2011-05-29 06:17:31

回答

1

试试这个:

$xmlobj=simplexml_load_string(file_get_contents("http://bulliesatwork.co.uk/master/dev/domp/expdom/domains.php")); 

$res = $xmlobj->xpath("/rss/channel/item/title"); 
$names = array(); 
while(list(, $node) = each($res)) { 
    $names[] = (string)$node; 
} 

$names拥有所有你想要的名字:你需要做字符串替换自己。

+0

谢谢Femi :-) – 2011-05-29 07:10:34