迅睿CMS Xunrui火车头采集发布插件制作方法,门户类网站ui优化
发布时间 - 2025-07-21 09:39:00 点击率:次一、编写采集入库脚本接口
新建2个php文件:
1. 目录./api/下新建caiji.php(都是小写),代码:
<?php
/**
* 数据采集
*/
define('IS_API', basename(__FILE__, '.php')); // 项目标识
define('SELF', pathinfo(__FILE__, PATHINFO_BASENAME)); // 该文件的名称
require('../index.php'); // 引入主文件2. 目录 ./dayrui/My/Api/下,如果没有就新建个目录,新建Caiji.php(注意第一个字母是大写),代码如下:<?php
$this->_module_init('news'); // news 是模块目录
if ($_GET['action'] == 'category') {
// 显示栏目
foreach ($this->module['category'] as $t) {
if ($t['child'] == 0 && $t['tid'] == 1) {
echo '<h1>'.$t['name'].'<=>'.$t['id'].'</h1>'.PHP_EOL;
}
}
} else {
// 入库数据
$data = $_REQUEST;
// 发布者id 1
$data['uid'] = 1;
// 发布者账号 admin
$data['author'] = 'admin';
// 主表字段
$fields[1] = $this->get_cache('table-'.SITE_ID, $this->content_model->dbprefix(SITE_ID.'_'.MOD_DIR));
$cache = $this->get_cache('table-'.SITE_ID, $this->content_model->dbprefix(SITE_ID.'_'.MOD_DIR.'_category_data'));
$cache && $fields[1] = array_merge($fields[1], $cache);
// 附表字段
$fields[0] = $this->get_cache('table-'.SITE_ID, $this->content_model->dbprefix(SITE_ID.'_'.MOD_DIR.'_data_0'));
$cache = $this->get_cache('table-'.SITE_ID, $this->content_model->dbprefix(SITE_ID.'_'.MOD_DIR.'_category_data_0'));
$cache && $fields[0] = array_merge($fields[0], $cache);
// 去重复
$fields[0] = array_unique($fields[0]);
$fields[1] = array_unique($fields[1]);
$s*e = [];
// 主表附表归类
foreach ($fields as $ismain => $field) {
foreach ($field as $name) {
isset($data[$name]) && $s*e[$ismain][$name] = $data[$name];
}
}
if (!$data['catid']) {
exit('栏目为空');
}
/*随机发栏目,下面的数字是栏目id
$arr_1 = array("44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85");
$randarr= mt_rand(0,count($arr_1)-1);
$data['catid'] = $arr_1[$randarr];
*/
$s*e[1]['uid'] = $s*e[0]['uid'] = $data['uid'];
$s*e[1]['catid'] = $s*e[0]['catid'] = $data['catid'];
// 提取内容中第一张图作为缩略图
$s*e[1]['url'] = '';
$s*e[1]['status'] = 9; //9表示正常发布,1表示审核里面
$s*e[1]['hits'] = random_int(50,900);
$s*e[1]['displayorder'] = 0;
$s*e[1]['link_id'] = 0;
//$s*e[1]['comments'] = 0;
// $s*e[1]['*gsort'] = 0;
$s*e[1]['inputtime'] = $s*e[1]['updatetime'] = SYS_TIME + rand(0, 7200);
$s*e[1]['inputip'] = '127.0.0.1';
function myTrim($str)
{
$search = array(" "," ","\n","\r","\t");
$replace = array("","","","","");
return str_replace($search, $replace, $str);
}
$nr=dr_clearhtml($s*e[0]['content']);
$nr=myTrim($nr);
$s*e[1]['description']=dr_clearhtml(substr($nr,0,400));
$value=$s*e[0]['content'];
$formsite = '/'; //相对地址时候目标域名
$value = str_replace('src="/', 'src="'.$formsite, $value);
//exit($value);
if (preg_match_all("/(src)=([\"|']?)([^ \"'>]+\.(gif|jpg|jpeg|png))\\2/i", $value, $imgs)) {
foreach ($imgs[3] as $img) {
if (strpos($img, '/api/ueditor/') !== false
|| strpos($img, '/api/umeditor/') !== false) {
continue;
}
// 下载图片
if (strpos($img, 'http') === 0) {
// 正常下载
// 判断域名白名单
$arr = parse_url($img);
$domain = $arr['host'];
if ($domain) {
$sites = WRITEPATH.'config/domain_site.php';
if (isset($sites[$domain])) {
// 过滤站点域名
} elseif (strpos(SYS_UPLOAD_URL, $domain) !== false) {
// 过滤附件白名单
} else {
$zj = 0;
$remote = \Phpcmf\Service::C()->get_cache('attachment');
if ($remote) {
foreach ($remote as $t) {
if (strpos($t['url'], $domain) !== false) {
$zj = 1;
break;
}
}
}
if ($zj == 0) {
// 可以下载文件
// 同步模式
// 下载远程文件
$rt = \Phpcmf\Service::L('upload')->down_file([
'url' => $img,
'attachment' => \Phpcmf\Service::M('Attachment')->get_attach_info(intval($field['content']['setting']['option']['attachment'])),
]);
if ($rt['code']) {
$att = \Phpcmf\Service::M('Attachment')->s*e_data($rt['data'], 'ueditor_down_img');
if ($att['code']) {
// 归档成功
$value = str_replace($img, $rt['data']['url'], $value);
$img = $att['code'];
}
}
}
}
}
}
}
}
$s*e[0]['content']=$value;
$imgs = dr_get_content_img($s*e[0]['content']);
$s*e[1]['thumb'] = (string)$imgs[0];
// 验证标题重复
if ($this->content_model->table(SITE_ID.'_'.MOD_DIR)->where('title', $s*e[1]['title'])->counts()) {
echo '重复';exit;
}
// $rt = $this->content_model->s*e(0, $s*e);
$rt = $this->content_model->s*e_content(0, $s*e);
if ($rt['code']) {
exit('成功');
} else {
exit('失败');
}
}
exit;
二、火车采集器新建一个在线发布模块
选择迅睿发布模块-网页编码utf-8-网站地址填上首页地址,测试获取列表。
成功获取列表就说明成功了。
要发布的标签自行测试。
三、扩展功能:修复火车头直接发布缩略图url(比如外链或内链url)
目录 ./dayrui/My/Api/下,的 Caiji.php(注意第一个字母是大写),代码如下:
<?php
//修复火车头发布缩略图成功
$this->_module_init('news'); // 初始化模块(news替换为你的模块名)
if ($_GET['action'] == 'category') {
// 显示栏目
foreach ($this->module['category'] as $t) {
if ($t['child'] == 0 && $t['tid'] == 1) {
echo '<h1>'.$t['name'].'<=>'.$t['id'].'</h1>'.PHP_EOL;
}
}
} else {
// 入库数据
$data = $_REQUEST;
// 发布者信息
$data['uid'] = 1; // 发布者ID
$data['author'] = 'admin'; // 发布者账号
// 主表字段
$fields[1] = $this->get_cache('table-'.SITE_ID, $this->content_model->dbprefix(SITE_ID.'_'.MOD_DIR));
$cache = $this->get_cache('table-'.SITE_ID, $this->content_model->dbprefix(SITE_ID.'_'.MOD_DIR.'_category_data'));
$cache && $fields[1] = array_merge($fields[1], $cache);
// 附表字段
$fields[0] = $this->get_cache('table-'.SITE_ID, $this->content_model->dbprefix(SITE_ID.'_'.MOD_DIR.'_data_0'));
$cache = $this->get_cache('table-'.SITE_ID, $this->content_model->dbprefix(SITE_ID.'_'.MOD_DIR.'_category_data_0'));
$cache && $fields[0] = array_merge($fields[0], $cache);
// 去重复
$fields[0] = array_unique($fields[0]);
$fields[1] = array_unique($fields[1]);
$s*e = [];
// 主表附表归类
foreach ($fields as $ismain => $field) {
foreach ($field as $name) {
isset($data[$name]) && $s*e[$ismain][$name] = $data[$name];
}
}
// 必填字段检查
if (!$data['catid']) {
exit('栏目不能为空');
}
/*随机发栏目,下面的数字是栏目id
$arr_1 = array("44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85");
$randarr= mt_rand(0,count($arr_1)-1);
$data['catid'] = $arr_1[$randarr];
*/
// 基本数据设置
$s*e[1]['uid'] = $s*e[0]['uid'] = $data['uid'];
$s*e[1]['catid'] = $s*e[0]['catid'] = $data['catid'];
$s*e[1]['url'] = '';
$s*e[1]['status'] = 9; // 9-已审核
$s*e[1]['hits'] = random_int(50, 900);
$s*e[1]['displayorder'] = 0;
$s*e[1]['link_id'] = 0;
$s*e[1]['inputtime'] = $s*e[1]['updatetime'] = SYS_TIME + rand(0, 7200);
$s*e[1]['inputip'] = '127.0.0.1';
// 处理描述
function myTrim($str) {
$search = array(" "," ","\n","\r","\t");
$replace = array("","","","","");
return str_replace($search, $replace, $str);
}
$nr = dr_clearhtml($s*e[0]['content']);
$nr = myTrim($nr);
$s*e[1]['description'] = dr_clearhtml(substr($nr, 0, 400));
// ==================== 缩略图处理 ====================
// 接收火车头的https://public-space.oss-cn-hongkong.aliyucs.com/keji/712.jpg内容
$thumb_url = isset($data['thumb']) ? trim($data['thumb']) : '';
if ($thumb_url) {
// 如果是HTTP开头的远程图片
if (strpos($thumb_url, 'http') === 0) {
// 下载远程图片到迅睿附件系统
$rt = \Phpcmf\Service::L('upload')->down_file([
'url' => $thumb_url,
'attachment' => \Phpcmf\Service::M('Attachment')->get_attach_info(0),
]);
if ($rt['code']) {
// 保存到附件表
$att = \Phpcmf\Service::M('Attachment')->s*e_data($rt['data'], '火车头采集缩略图');
if ($att['code']) {
$s*e[1]['thumb'] = $att['code']; // 使用附件ID
}
}
}
// 如果是本地路径图片(火车头已下载到本地的图片)
else {
// 上传本地图片到迅睿
$rt = \Phpcmf\Service::L('upload')->upload_file([
'file' => $thumb_url,
'attachment' => \Phpcmf\Service::M('Attachment')->get_attach_info(0),
]);
if ($rt['code']) {
$s*e[1]['thumb'] = $rt['data']['id']; // 使用附件ID
}
}
}
// 内容处理(保持原逻辑)
$value = $s*e[0]['content'];
$formsite = '/';
$value = str_replace('src="/', 'src="'.$formsite, $value);
//exit($value);
if (preg_match_all("/(src)=([\"|']?)([^ \"'>]+\.(gif|jpg|jpeg|png))\\2/i", $value, $imgs)) {
foreach ($imgs[3] as $img) {
if (strpos($img, '/api/ueditor/') !== false
|| strpos($img, '/api/umeditor/') !== false) {
continue;
}
// 下载图片
if (strpos($img, 'http') === 0) {
// 正常下载
// 判断域名白名单
$arr = parse_url($img);
$domain = $arr['host'];
if ($domain) {
$sites = WRITEPATH.'config/domain_site.php';
if (isset($sites[$domain])) {
// 过滤站点域名
} elseif (strpos(SYS_UPLOAD_URL, $domain) !== false) {
// 过滤附件白名单
} else {
$zj = 0;
$remote = \Phpcmf\Service::C()->get_cache('attachment');
if ($remote) {
foreach ($remote as $t) {
if (strpos($t['url'], $domain) !== false) {
$zj = 1;
break;
}
}
}
if ($zj == 0) {
// 可以下载文件
// 同步模式
// 下载远程文件
$rt = \Phpcmf\Service::L('upload')->down_file([
'url' => $img,
'attachment' => \Phpcmf\Service::M('Attachment')->get_attach_info(intval($field['content']['setting']['option']['attachment'])),
]);
if ($rt['code']) {
$att = \Phpcmf\Service::M('Attachment')->s*e_data($rt['data'], 'ueditor_down_img');
if ($att['code']) {
// 归档成功
$value = str_replace($img, $rt['data']['url'], $value);
$img = $att['code'];
}
}
}
}
}
}
}
}
$s*e[0]['content'] = $value;
// 标题查重
if ($this->content_model->table(SITE_ID.'_'.MOD_DIR)->where('title', $s*e[1]['title'])->counts()) {
exit('标题重复');
}
// 保存数据
$rt = $this->content_model->s*e_content(0, $s*e);
if ($rt['code']) {
exit('发布成功');
} else {
exit('发布失败:'.($rt['msg'] ?? '未知错误'));
}
}
exit;火车头添加 缩略图标签,字段名thumb。
# Xunrui迅睿CMS火车头采集发布插件
# 结构优化网站有哪些
# 我赢网SEO优化网站
# 北京网站建设优化诊断
# seo2性质
# 寄生虫原理seo
# 沧州盐山seo推广
# 响水关键词排名
# 海兴关键词自然排名优化
# 中山seo快速优化软件
# 网站seo基础设置
# 阳春网站搜索引擎优化
# 淮阴网站制作品牌优化
# 上海市优化网站排名
# 蜂鸟seo系统厂家
# SEO重庆文案沙雕
# 越秀区seo优化报价
# u范肌肤优化官网网站
# 行唐个人关键词排名要求
# 日照网站建设方案优化
# 当地的关键词推广排名
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
百度快照是啥?网页内容瞬间备份?,优化网站地图
网站 *** 素材全攻略,从设计到功能的完美搭配,网站 *** 全攻略,设计与功能完美融合秘籍
南宁网站优化,提升网站流量与转化率的秘诀指南,南宁网站优化攻略,揭秘流量与转化率双提升秘诀
衢州网站建设,助力企业数字化转型的关键一步,衢州企业数字化转型新引擎,网站建设的关键作用
杭州网站推广,助力企业拓展线上市场,实现品牌价值更大化,杭州专业网站推广服务,助力企业线上飞跃
打造高效招商平台——深度解析招商网站建设的重要性与策略,构建高效招商生态,揭秘招商网站建设的核心价值与实施策略
双芯驱动,未来何去何从?,seo搜索优化毕业论文
大数据,意味着什么?,辽源seo服务多少钱
双11,爆款秒杀,你准备好了吗?,洪梅抖音seo团队
福州竞价外包,双管齐下,效果如何?,江苏抖音关键词排名竞价
福建论坛手机版,核心关键词是什么?,塔城抖音seo服务
互联网金融投诉平台,如何高效**?,SEO监测摄像头宝宝
双生, life是何方神圣?,哈尔滨网站优化方式
第一天堂SEO优化,如何提升网站排名?,非原生ip对网站优化有影响
自媒体推广:如何快速提升影响力?,seo网站就选火星13
电子商务网站策划书,打造高效便捷的在线购物平台,构建高效便捷电商平台的策略规划书,构建高效便捷电商平台的策略规划与电子商务网站策划书
宜宾建设网,宜宾发展新篇章?,射阳seo优化怎么样
SEO专员,月薪8000+?你确定不试试?,王者荣耀SEO方案
双语交流,沟通无界?,杭州抖音seo性价比
网络营销优势:如何精准触达目标客户?,网址导航seo很差
免费网站设计,打造个性化品牌形象,无需高额预算的完美解决方案,零成本打造品牌,免费网站设计与个性化形象构建方案
哈尔滨网站建设,核心关键词如何嵌入?效果如何?,重庆綦江网站优化哪个好
网站仿制,创新与模仿的边界探讨,网站仿制现象解析,创新与模仿的界限研究
CRM营销是客户关系管理,它如何提升企业效益?,平湖seo优化按天收费
网站建设案例解析,从策划到上线,揭秘成功之道,网站建设成功秘诀,策划至上线全程解析
北斗地图导航2025,新版功能升级,你体验过吗?,网络营销和seo区别
网站开发平台,构建数字化未来的关键基石,数字化未来基石,揭秘网站开发平台的重要性
地方门户网站系统,构建区域信息枢纽,助力地方经济发展,打造地方信息枢纽,地方门户网站系统助力区域经济发展
漳州网站 *** ,打造个性化品牌形象,助力企业腾飞,漳州专业网站定制,塑造独特品牌风貌,助推企业飞跃,漳州专业网站定制服务,塑造企业品牌新风貌
绍兴网站建设,助力企业打造数字化品牌形象,绍兴企业数字化品牌形象塑造专家——网站建设服务,绍兴企业数字化品牌形象塑造先锋——专业网站建设服务
网络营销方案核心策略,如何提升转化率?,seo文章怎么写标题
株洲做网站,专业团队打造高品质网站,助力企业腾飞,株洲企业网站定制,专业团队铸就品质飞跃,株洲企业网站定制,专业团队助力品质飞跃,腾飞启航
哈尔滨网站 *** ,打造专业、高效、个性化的 *** 平台,哈尔滨专业定制网站建设服务,成就卓越 *** 平台
SEO/OEM代理,如何提升网站排名?,上海网站运营SEO
揭秘学校网站源码,构建高效教育平台的幕后技术,揭秘学校网站核心技术,构建高效教育平台的秘密
西安百度推广,精准锁定关键词,效果如何?,seo站群做法
重庆SEO建设,如何快速提升网站排名?,淘宝seo海外代购
云南交友神器,你还在单身吗?,sop关键词排名
如何免费建网站,轻松入门的免费网站搭建指南,零成本入门,免费搭建个人网站的实用指南,零成本轻松搭建个人网站的免费指南
剑雨免费高清,前半部揭秘江湖恩怨,后半部谁主沉浮?,东莞seo方案优化工具
优雅生活,如何打造35+女性的魅力人生?,seo浏览器清理缓存
内存优化,双倍速度,你做到了吗?,seo外链对比
长沙网站 *** ,打造个性化企业门户,助力品牌腾飞,长沙定制企业门户,助力品牌飞跃新高度,长沙定制企业门户,塑造品牌新形象,助力腾飞之路
德州旅游,探秘古韵,有何独特之处?,小企业seo实战技巧
哈尔滨网站制作,您选对了吗?,黄浦抖音seo优化
双白帽,网络安全专家是吗?,老站seo收录变慢
搜狗搜索技巧,如何快速找到答案?,菏泽seo优化地址
百度地址注册,如何快速找到心仪房源?,部部门关键词排名
搜索引擎优化技巧,如何快速找到高质量答案?,js外部调用 seo
威海网站优化,如何快速提升排名?,酒店网站的优化和建议

