【发布时间】:2014-02-17 17:46:39
【问题描述】:
我是新来的,最近是 php 的用户。我有一个无法摆脱的 DOM 文档的问题。
实际上这段代码已经适用于其他 HTML 文档,但它不适用于这里的最后一个:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="http://r22.csmres.co.uk/_common/js/min/yui.js"></script>
<script type="text/javascript" src="http://r22.csmres.co.uk/_common/js/min/cp.js"></script>
<script type="text/javascript" src="http://r22.csmres.co.uk/_common/js/min/udm.js"></script>
<script type="text/javascript" src="http://r22.csmres.co.uk/_common/js/swfobject.js"></script>
<script type="text/javascript">
var Event = YAHOO.util.Event, Dom = YAHOO.util.Dom, $ = Dom.get;
Event.onDOMReady(function() {
csm_search.init('search-text', 'search-btn');
if (pagePeel != 'undefined') { sizedown987(); }
});
</script>
<!-- S:22 -->
<!-- G:16_08_54 -->
...
<title>Awesome Title</title>
</head>
...
</html>
我的 PHP 代码如下所示:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'NewsD');
$resultat = utf8_decode(curl_exec($ch));
curl_close($ch);
$Page = new DOMDocument();
@ $Page->loadHTML($resultat);
$title = $Page->getElementsByTagName('title')->item(0)->nodeValue;
我已将此代码用于多个文档(或带有 URL 输入变量的网页),但最后一个不起作用,因为我的输出 $title 为空。我不明白为什么!
非常感谢您的帮助!
亚瑟
【问题讨论】:
-
var_dump getElementsByTagName('title') 会得到什么?
-
当我这样做时: var_dump(getElementsByTagName('title')) 我得到: object(DOMNodeList)[2] var_dump(getElementsByTagName('title')->item(0)) 我得到: object (DOMElement)[4] var_dump(getElementsByTagName('title')->item(0)->Nodevalue) 我得到:string '' (length=0) 对我来说毫无意义!
-
这段代码对你有用吗?我在 C++ 中遇到了完全相同的问题。你最近问这个问题的事实让我很担心......我真的希望最近没有发生更新来破坏这个功能!
标签: php html dom getelementsbytagname nodevalue