PHP 获取网页标题、描述和 favicon:站长工具完整示例 [复制链接]

一级用户组

做网址导航、友情链接检测、SEO 工具时,经常需要输入一个网址后自动识别标题、描述和 favicon。下面是一个原生 PHP 单文件示例。

完整代码

<?php
function fetch_html($url) {
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_CONNECTTIMEOUT => 5,
        CURLOPT_TIMEOUT => 12,
        CURLOPT_USERAGENT => 'Mozilla/5.0 Website Meta Bot',
    ]);
    $html = curl_exec($ch);
    curl_close($ch);
    return $html ?: '';
}

function page_meta($url) {
    $html = fetch_html($url);
    libxml_use_internal_errors(true);
    $dom = new DOMDocument();
    $dom->loadHTML('<?xml encoding="utf-8" ?>' . $html);
    $xpath = new DOMXPath($dom);

    $titleNode = $xpath->query('//title')->item(0);
    $descNode = $xpath->query('//meta[translate(@name,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")="description"]')->item(0);
    $iconNode = $xpath->query('//link[contains(translate(@rel,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz"),"icon")]')->item(0);

    return [
        'title' => $titleNode ? trim($titleNode->textContent) : '',
        'description' => $descNode ? trim($descNode->getAttribute('content')) : '',
        'favicon' => $iconNode ? trim($iconNode->getAttribute('href')) : rtrim($url, '/') . '/favicon.ico',
    ];
}

header('Content-Type: application/json; charset=utf-8');
echo json_encode(page_meta($_GET['url'] ?? 'https://bbs.lc'), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

使用方式

访问:meta.php?url=https://bbs.lc,就能返回网页标题、description 和 favicon 地址。

关键词:PHP 获取网页标题、PHP 获取 description、PHP favicon 获取。

最新回复

请先登录后再回复 登录

uid:4 一级用户组
关注
我与春风皆过客,你携秋水揽星河
发帖 20
评论 0
粉丝 0
关注 0
发新帖
目录
PHP 获取网页标题、描述和 favicon:站长工具完整示例