概述
在SEO优化工作中,了解网站在搜索引擎中的收录状态并及时提交新内容至关重要。本文分析的PHP脚本实现了两个核心功能:
- 收录状态检查:查询指定URL是否被百度搜索引擎收录
- 主动推送:将URL提交至百度搜索引擎加速收录
技术实现解析
1. 基础设置与参数处理
代码语言:php
AI代码解释
// 允许跨域请求
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json; charset=utf-8');
// 获取参数
$action = isset($_GET['action']) ? $_GET['action'] : '';
$url = isset($_GET['url']) ? $_GET['url'] : '';
脚本首先设置CORS头部允许跨域访问,并指定响应格式为JSON。这种设计使该接口可被前端应用直接调用,方便集成到Web项目中。
2. 收录检查功能的实现
checkBaiduIndex()函数通过模拟百度搜索查询来判断URL收录状态:
代码语言:php
AI代码解释
function checkBaiduIndex($url) {
$urlParts = parse_url($url);
$domain = $urlParts['host'];
$path = isset($urlParts['path']) ? $urlParts['path'] : '';
$query = isset($urlParts['query']) ? '?' . $urlParts['query'] : '';
// 构造百度搜索URL
$searchUrl = "https://www.baidu.com/s?wd=site:{$domain} inurl:" . urlencode($path . $query);
// 设置请求头模拟浏览器
$options = [
'http' => [
'method' => 'GET',
'header' => 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...'
]
];
$context = stream_context_create($options);
$result = file_get_contents($searchUrl, false, $context);
// 分析搜索结果
$isIndexed = strpos($result, '没有找到与') === false && strpos($result, $domain) !== false;
return [
'success' => true,
'indexed' => $isIndexed,
'message' => $isIndexed ? '该URL已被百度收录' : '该URL未被百度收录'
];
}
技术要点:
- 使用
parse_url()解析URL获取域名和路径信息 - 构造特定的搜索查询:
site:domain.com inurl:/path/page - 设置User-Agent模拟浏览器行为,避免被百度反爬机制拦截
- 通过搜索结果的特定文本判断收录状态
3. URL提交功能的实现
submitToBaidu()函数使用百度站长平台的API接口提交URL:
代码语言:php
AI代码解释
function submitToBaidu($url, $token) {
$urlParts = parse_url($url);
$domain = $urlParts['host'];
// 构造百度API接口URL
$apiUrl = "http://data.zz.baidu.com/urls?site={$domain}&token={$token}";
// 设置POST请求
$options = [
'http' => [
'method' => 'POST',
'header' => 'Content-Type: text/plain',
'content' => $url
]
];
$context = stream_context_create($options);
$result = file_get_contents($apiUrl, false, $context);
// 解析API响应
$resultData = json_decode($result, true);
if (isset($resultData['success'])) {
return [
'success' => true,
'message' => '提交成功,预计' . $resultData['success'] . '条URL将被收录',
'data' => $resultData
];
} else {
return [
'success' => false,
'message' => '提交失败: ' . (isset($resultData['message']) ? $resultData['message'] : '未知错误'),
'data' => $resultData
];
}
}
技术要点:
- 使用百度官方提供的收录API接口
- 需要有效的站长平台token进行
- 通过POST方式提交URL数据
- 解析并返回API的JSON响应
7958

被折叠的 条评论
为什么被折叠?



