1
我有一個腳本,它讀取XML標籤並將其打印在我的頁面上。 有些項目是鏈接(沒有HTML標籤),所以我做了一個向其添加HTML鏈接標籤的功能。 但是,鏈接呈現爲字符串而不是HTML。PHP:createTextNode作爲對象
我知道它是因爲我使用了createTextNode,所以我需要將它作爲對象返回而不是字符串。
繼承人我的代碼
function get_feeds() {
$feeds = array(
array(
'name' => 'Agenda',
'url' => 'http://www.beleefdokkum.nl//pages/rss.aspx?type=agenda',
'get' => array('title', 'description', 'link'),
'scope' => array(1, 10)
),
array(
'name' => 'News',
'url' => 'http://www.beleefdokkum.nl//pages/rss.aspx?type=nieuws',
'get' => array('title', 'description', 'link'),
'scope' => array(1, 10)
),
array(
'name' => 'Social media',
'url' => 'http://api.twitter.com/1/statuses/user_timeline.rss?screen_name=NOFriesland',
'get' => array('description'),
'scope' => array(1, 10)
)
);
$result = new DOMDocument();
function linkify($text) {
$text = preg_replace('/(https?:\/\/\S+)/', '<a href="\1" class="preg-links">\1</a>', $text);
$text = preg_replace('/(^|\s)@(\w+)/', '\[email protected]<a href="http://twitter.com/\2" class="preg-links">\2</a>', $text);
$text = preg_replace('/(^|\s)#(\w+)/', '\1#<a href="http://search.twitter.com/search?q=%23\2" class="preg-links">\2</a>', $text);
return $text;
}
foreach ($feeds as $feed) {
$xml = new DOMDocument();
$xml->load($feed['url']);
$frame = $result->createElement('div');
$frame->setAttribute('class', 'feed_frame');
$result->appendChild($frame);
$name = $result->createElement('h1', $feed['name']);
$name->setAttribute('class', 'feed_name');
$frame->appendChild($name);
$content = $result->createElement('div');
$content->setAttribute('class', 'feed_content');
$frame->appendChild($content);
for ($i = $feed['scope'][0]; $i < $feed['scope'][1]; $i++) {
$item = $result->createElement('span');
$item->setAttribute('class', 'feed_item');
$content->appendChild($item);
foreach ($feed['get'] as $get) {
$object = $result->createElement('p');
$text = $result->createTextNode(linkify($xml->getElementsByTagName($get)->item($i)->nodeValue));
$object->appendChild($text);
$object->setAttribute('class', 'feed_'.$get);
$item->appendChild($object);
}
}
}
return $result->saveHTML();
}
它可以說是本來就容易用XSLT如果你會問我:) –
順便說一句,你是什麼意思呈現爲字符串..不會HTML也是一個字符串? –
我的意思是標記呈現爲link to page而不僅僅是一個可點擊的鏈接。 –