🗣 Wd提问: 关键词自动推送服务ThinkPHP
🤖 Ai回答: 在 ThinkPHP 框架中实现“关键词自动推送服务”通常是指:当用户发布内容(如文章、商品、评论等)时,系统自动提取其中的关键词,并将这些关键词推送到搜索引擎(如百度、360、搜狗等)或内部的关键词管理系统中,以提升内容的可见性和SEO效果。
下面是一个基于 ThinkPHP 6.x 的关键词自动推送服务的实现方案:
✅ 功能目标
1、自动提取文本中的关键词。
2、将关键词推送到指定的搜索引擎接口(如百度站长平台)。
3、支持定时任务或事件触发推送。
🛠️ 步骤一:安装依赖
bash
composer require overtrue/baidu-push-sdk
或者手动实现百度链接提交 API 接口。
📁 步骤二:创建关键词提取工具类
php
// app/Utils/KeywordExtractor.php
<?php
namespace app\utils;
use Overtrue\BaiduPush\BaiduPush;
class KeywordExtractor
{
public static function extract($text, $limit = 10)
{
// 使用简单规则提取关键词(可替换为更高级算法)
$keywords = [];
$words = preg_split('/[\s,\.\n\r]+/', $text);
// 过滤常见停用词和短词
$stopwords = ['的', '是', '在', '我', '有', '和', '就', '了', '这', '那'];
foreach ($words as $word) {
if (strlen($word) = 2 && !in_array($word, $stopwords)) {
$keywords[] = $word;
}
}
// 去重并取前N个
return array_slice(array_unique($keywords), 0, $limit);
}
}
💡 提示:可以使用 `jieba` 分词库(PHP版)或调用第三方 API(如腾讯云 NLP)进行更精准分词。
🚀 步骤三:创建推送服务类
php
// app/Service/KeywordPusher.php
<?php
namespace app\service;
use app\utils\KeywordExtractor;
use GuzzleHttp\Client;
class KeywordPusher
{
protected $client;
public function __construct()
{
$this-client = new Client();
}
public function pushToBaidu($url, $keywords)
{
$apiUrl = 'https://push.zhanzhang.baidu.com/api/push';
$token = config('baidu.push_token'); // 配置文件中设置
$data = [
'site' = config('baidu.site'),
'urls' = [$url],
'type' = 1,
'keywords' = implode(',', $keywords),
];
try {
$response = $this-client-post($apiUrl, [
'headers' = [
'Content-Type' = 'application/json',
'Authorization' = 'Bearer ' 、$token,
],
'json' = $data,
]);
$result = json_decode($response-getBody(), true);
if ($result['success']) {
return true;
} else {
\think\Log::error('百度推送失败: ' 、json_encode($result));
return false;
}
} catch (\Exception $e) {
\think\Log::error('推送异常: ' 、$e-getMessage());
return false;
}
}
public function autoPush($content, $url)
{
$keywords = KeywordExtractor::extract($content, 5);
return $this-pushToBaidu($url, $keywords);
}
}
🔧 步骤四:配置文件
php
// config/baidu.php
return [
'push_token' = 'your_baidu_push_token_here',
'site' = 'https://www.yourdomain.com',
];
📤 步骤五:在控制器中使用(例如发布文章)
php
// app/controller/ArticleController.php
<?php
namespace app\controller;
use app\service\KeywordPusher;
class ArticleController extends BaseController
{
public function publish()
{
$data = input('post.');
$title = $data['title'];
$content = $data['content'];
// 保存文章到数据库
$article = Article::create([
'title' = $title,
'content' = $content,
'url' = url('article/view?id=' 、$article-id),
]);
// 自动推送关键词
$pusher = new KeywordPusher();
$pusher-autoPush($content, $article-url);
return json(['status' = 'success']);
}
}
⏱️ 步骤六:定时任务(可选)
使用 ThinkPHP 的命令行调度器(或 Laravel Scheduler 方式)定期推送历史未推送的文章。
php
// app/command/PushKeywords.php
<?php
namespace app\command;
use think\console\Command;
use think\console\Input;
use think\console\Output;
use app\service\KeywordPusher;
class PushKeywords extends Command
{
protected function configure()
{
$this-setName('keyword:push')-setDescription('Push keywords to search engines');
}
protected function execute(Input $input, Output $output)
{
$articles = Article::where('pushed', 0)-limit(10)-select();
foreach ($articles as $article) {
$pusher = new KeywordPusher();
if ($pusher-autoPush($article-content, $article-url)) {
$article-pushed = 1;
$article-save();
}
}
$output-writeln('Keyword push completed.');
}
}
注册命令:
bash
php think keyword:push
✅ 总结
| 功能 | 实现方式 |
| 关键词提取 | 自定义规则 / jieba / 第三方API |
| 推送接口 | 百度站长平台 API |
| 触发机制 | 发布内容时实时推送 / 定时任务补推 |
| 日志记录 | ThinkPHP Log |
🌐 扩展建议
使用 Redis 缓存已推送的 URL,避免重复。
支持多搜索引擎(360、搜狗)。
添加关键词热度统计与分析。
使用队列(如 RabbitMQ、Redis Queue)异步处理推送,提高性能。
如果你使用的是 ThinkPHP 5.x,语法略有差异,但整体逻辑一致。
需要我提供完整项目结构或集成 jieba 分词?欢迎继续提问!
📣 商家广告 :
👍
0
👎
IP地址: 215.251.104.19
搜索次数: 0
提问时间: 2025-11-08 11:59:41
🛒 域名购买 :
qppp.com.cn 62.gs jldj.cn sou.gg lytxw.com pbbb.com.cn 976.net.cn chxk.cn wangsou.com.cn jiu.red
❓️ 热门提问 :
按量计费的服务器 ip网址查询域名 国外域名注册 便宜 双线机房服务器托管 用新加坡服务器 慈溪品牌网站建设 pycharm 服务器 站群批量SSL证书 免费云主机 推荐 高端网站建设需要多少钱 豌豆Ai站群搜索引擎系统
🌐 域名评估 :
mm.ln.cn dji.tw.cn deepseek.mba 67.gs xjop.cn NameBright.com g.xj.cn su.xj.cn xphone.games yonghongtech.com
⛏ 最新挖掘 :
凯里酸汤鱼 贵阳烤脑花 都匀毛尖茶 花溪牛肉粉 贵阳烤生蚝 贵阳烤豆腐 贵阳纸包鱼 贵阳特色菜
🖌 热门作画 :
🤝 关于我们:
豌豆Ai
域名
建站
站群
留痕
推广
评估
源码
开发Ai
工具
日记
价格
加盟
广告
流量
留言
联系
🗨 加入群聊 :
🔗 友情链接 :
查询网站域名
聊天室网页版
ai提问
🧰 站长工具 :Ai工具 whois查询 搜索
📢 温馨提示 :本站所有问答由Ai自动创作,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
👉 技术支持 :本站由豌豆Ai 提供技术支持,使用的最新版:《豌豆Ai站群搜索引擎系统 V.25.10.25》搭建本站。