首页 话题 小组 问答 好文 用户 我的社区 域名交易

[分享]用php代码取出博客园文章api 文章的标题和内容,用json格式返回

发布于 2024-12-02 22:13:08
0
94

用php代码取出博客园文章api 文章的标题和内容,用json格式返回

<?php

function fetchBlogContent($url) {
    // 获取网页内容
    $html = file_get_contents($url);

    if ($html === FALSE) {
        return json_encode(['error' => 'Failed to retrieve content']);
    }

    // 创建一个新的DOMDocument实例
    $dom = new DOMDocument();

    // 抑制libxml的警告信息
    libxml_use_internal_errors(true);
    $dom->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8'));
    libxml_clear_errors();

    // 查找文章标题
    $xpath = new DOMXPath($dom);
    $titleNode = $xpath->query('//h1[@class="postTitle"]//a')->item(0);
    $title = $titleNode ? trim($titleNode->nodeValue) : '';

    // 查找文章内容
    $contentNodes = $xpath->query('//div[@id="cnblogs_post_body"]');
    $content = '';
    foreach ($contentNodes as $node) {
        $content .= $dom->saveHTML($node);
    }
    $content = trim($content);

    // 返回结果为JSON格式
    return json_encode([
        'title' => $title,
        'content' => strip_tags($content, '<p><a><ul><ol><li><strong><em><code><pre>')
    ], JSON_UNESCAPED_UNICODE);
}

$url = 'https://www.cnblogs.com/****/p/****.html';
echo fetchBlogContent($url);

?>
评论
站长交流