Извлечение якорного текста из RSS - PullRequest
0 голосов
/ 29 мая 2011

Люди,

Я устал от всех своих навыков 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 Document:

$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/>';  
}

В обоих случаях DOMDocument создается, но, похоже, документ содержит всю информацию, кроме доменных имен, которые я хочу извлечь.

Пожалуйста, помогите мне извлечь доменные имена.

Приветствие.

1 Ответ

1 голос
/ 29 мая 2011

Попробуйте это:

$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 имеет все имена, которые вы хотите: вам нужно заменить строку самостоятельно.

...