gpt4 book ai didi

php - 从外部网站获取标题和元标签

转载 作者:IT王子 更新时间:2023-10-28 23:55:22 25 4
gpt4 key购买 nike

我想试试如何获得

<title>A common title</title>
<meta name="keywords" content="Keywords blabla" />
<meta name="description" content="This is the description" />

即使它以任何顺序排列,我也听说过 PHP Simple HTML DOM Parser,但我并不想使用它。除了使用 PHP Simple HTML DOM Parser 之外,是否有可能提供解决方案。

preg_match 如果是无效的 HTML 就无法做到?

cURL 可以用 preg_match 做这样的事情吗?

Facebook 做了类似的事情,但通过以下方式正确使用:

<meta property="og:description" content="Description blabla" />

我想要这样的东西,以便当有人发布链接时,它应该检索标题和元标记。如果没有元标记,则它会被忽略,或者用户可以自己设置(但我稍后会自己设置)。

最佳答案

应该是这样的:

function file_get_contents_curl($url)
{
$ch = curl_init();

curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

$data = curl_exec($ch);
curl_close($ch);

return $data;
}

$html = file_get_contents_curl("http://example.com/");

//parsing begins here:
$doc = new DOMDocument();
@$doc->loadHTML($html);
$nodes = $doc->getElementsByTagName('title');

//get and display what you need:
$title = $nodes->item(0)->nodeValue;

$metas = $doc->getElementsByTagName('meta');

for ($i = 0; $i < $metas->length; $i++)
{
$meta = $metas->item($i);
if($meta->getAttribute('name') == 'description')
$description = $meta->getAttribute('content');
if($meta->getAttribute('name') == 'keywords')
$keywords = $meta->getAttribute('content');
}

echo "Title: $title". '<br/><br/>';
echo "Description: $description". '<br/><br/>';
echo "Keywords: $keywords";

关于php - 从外部网站获取标题和元标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3711357/

25 4 0