用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);
?>