
代码如下:
<?php
/**
* 功能:从QQ分享链页面中提取笔记正文内容(去除HTML标签和多余空格)
* 步骤:1. 请求指定URL获取页面内容 2. 正则匹配核心内容区域 3. 清理格式并输出
*/
// 目标QQ分享链接(可替换为其他同格式链接)
$targetUrl = 'https://sharechain.qq.com/69df86a30155c496c26e5f52a35bb84d';
// 调用提取函数,获取清理后的笔记内容
$extractedNoteContent = extractNoteContent($targetUrl);
// 输出提取结果(便于调试查看)
print_r($extractedNoteContent);
/**
* 提取QQ分享页面中的笔记正文内容
* @param string $url 目标QQ分享链接
* @return string 清理后的纯文本笔记内容(去除HTML标签、空格符)
*/
function extractNoteContent($url) {
// 调用curl请求函数,获取页面原始内容
$pageRawContent = curlGetRequest($url);
// 正则匹配:提取article标签(class="note-body")内的所有内容
// [\s\S]*? 匹配任意字符(包括换行),非贪婪模式避免匹配过多
preg_match('/<article class="note-body">([\s\S]*?)<\/article>/i', $pageRawContent, $matches);
// 清理内容:先去除所有HTML标签,再替换 为普通空格
$cleanedContent = strip_tags($matches[0] ?? ''); // 空值保护:避免无匹配时报错
$cleanedContent = str_replace(' ', ' ', $cleanedContent);
// 去除首尾空白字符后返回
return trim($cleanedContent);
}
/**
* 封装curl GET请求函数(忽略SSL验证,适配移动端请求头)
* @param string $url 待请求的URL地址
* @return string|false 请求成功返回页面内容,失败返回false
*/
function curlGetRequest($url) {
// 初始化curl句柄
$curlHandle = curl_init($url);
// 设置curl选项:忽略SSL证书验证(避免HTTPS请求报错)
curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curlHandle, CURLOPT_SSL_VERIFYHOST, false);
// 设置返回结果不直接输出,而是返回给变量
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
// 设置请求头:模拟安卓手机浏览器(避免目标网站拦截非浏览器请求)
curl_setopt($curlHandle, CURLOPT_USERAGENT, 'Mozilla/5.0 (Linux; U; Android 4.4.1; zh-cn; R815T Build/JOP40D) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/4.5 Mobile Safari/533.1');
// 设置超时时间:10秒(避免请求卡住)
curl_setopt($curlHandle, CURLOPT_TIMEOUT, 10);
// 执行curl请求,获取响应内容
$responseContent = curl_exec($curlHandle);
// 关闭curl句柄(释放资源)
curl_close($curlHandle);
// 返回响应内容
return $responseContent;
}首先 进去手机版本我的收藏,
1.新建笔记
2.在文本框写下你需要的内容
3.右上角分享,随便分享给一个人,就可以抓到链接了。