Php 解析网页';s源给定的URL

Php 解析网页';s源给定的URL,php,parsing,url,Php,Parsing,Url,给定URL,如何解析某个网页的源代码?我想从源代码中找到作者、标题以及上次修改的时间 我的想法是用文件_get_contents()解析源代码。然后,对于作者,我会在源代码中查找getElementsByTagName('title'); 如果($titleNodes->length==1){ $title=$titleNodes->item(0)->textContent; } 您想如何解析它取决于您想用它做什么。PHP为解析和操作HTML和XML提供了大量选项。您可以使用file\u get

给定URL,如何解析某个网页的源代码?我想从源代码中找到作者、标题以及上次修改的时间

我的想法是用文件_get_contents()解析源代码。然后,对于作者,我会在源代码中查找[…]并提取其中的内容。我不确定我会怎么做才能找到上次修改的时间


这些方法有效吗?有更好的方法吗?

您可以使用文件获取内容

例如:

$content = file_get_contents('http://www.external-site.com/page.php');
然后变量$content将包含外部站点的内容。

您需要解析DOM

尝试使用如下解析器:

改用curl(当“allow\u url\u fopen”指令为false且更灵活时,它仍然有效)

要解析网页源代码,可以使用DOM库,但在加载HTML内容之前应该禁用libxml错误输出

例如:

<?php
$url = 'http://stackoverflow.com/';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$content = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
curl_close($ch);
if( $content === null || $httpCode >= 400 ) {
    die();
}

libxml_use_internal_errors(true);
$dom = new DOMDocument();
$dom->loadHTML($content);

$title = null;
$titleNodes = $dom->getElementsByTagName('title');
if( $titleNodes->length === 1 ) {
    $title = $titleNodes->item(0)->textContent;
}
loadHTML($content);
$title=null;
$titleNodes=$dom->getElementsByTagName('title');
如果($titleNodes->length==1){
$title=$titleNodes->item(0)->textContent;
}

您想如何解析它取决于您想用它做什么。PHP为解析和操作HTML和XML提供了大量选项。您可以使用
file\u get\u contents
或curl来检索页面。我想查找标题、作者以及上次修改的时间。这在不同的网页之间有很大差异--您需要提供一个您尝试解析的页面示例。