如果无法将页面的<title>标记的内容解析为XML,我该如何获取它?</title>

时间:2010-06-28 19:25:49

标签: php html xml curl libcurl

我正在使用PHP libcurl加载页面。现在我需要获取此页面的&lt; title&gt;标签的内容,以及其他一些信息。我试图使用SimpleXML解析它,但没有运气,因为页面不是有效的XML。你能否提出一些其他方法来轻松获取&lt; title&gt;的内容?标签?谢谢。

4 个答案:

答案 0 :(得分:3)

您可以使用DOMDocument::loadHTML

这将回应“标题”:

<?php

$doc = <<<HTML
<html>
<head>
<title>The title</title>
<body>
hhhhhh
HTML;

libxml_use_internal_errors(true);
$d = new DOMDocument;
$d->loadHTML($doc);
$ts = $d->getElementsByTagName("title");
if ($ts->length > 0) {
    echo $ts->item(0)->textContent;
}

答案 1 :(得分:1)

或者您可以使用Simple HTML DOM

答案 2 :(得分:0)

您可以使用此脚本获取页面标题。

# Script Title.txt
var str page, content
cat $page > $content
stex -r -c "^<title&</title&\>^" $content

将这个小代码保存在文件C:/Scripts/Title.txt中。代码是biterscripting。启动biterscripting,然后输入此命令。

script "C:/Scripts/Title.txt" page("http://stackoverflow.com/questions/3135488/how-can-i-get-pages-title-tags-content-if-it-cant-be-parsed-as-xml")

它将获得此页面的标题(您正在查看的那个)。使用任何其他URL或本地文件路径作为page()的值。使用双引号。当我执行这个命令时,我得到了

  

我怎样才能获得页面   &LT;标题&GT;标签的内容,如果它   无法解析为XML? - 堆叠   溢出

您可以从任何可执行文件或批处理文件中调用此脚本。

答案 3 :(得分:0)

尝试使用Yahoo的YQL控制台。您几乎可以查询任何网址,然后以XML格式查询结果。您甚至可以添加xpath来缩小范围。

http://developer.yahoo.com/yql/console/

也许您可以使用curl调用此服务。它非常方便。