dedecms自动采集更新伪原创插件高级版57(类里加上一个一个替换的方法,我想你懂的)
优采云 发布时间: 2022-02-08 23:31dedecms自动采集更新伪原创插件高级版57(类里加上一个一个替换的方法,我想你懂的)
原理很简单,在后台采集,自动替换标题关键词,我想你明白了。
好了,话不多说,工作开始了:
1.准备库表,获取sql脚本,表名为cz_str_replace
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for cz_str_replace
-- ----------------------------
DROP TABLE IF EXISTS `cz_str_replace`;
CREATE TABLE `cz_str_replace` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`interconvert` int(1) unsigned zerofill DEFAULT '0',
`find` varchar(20) CHARACTER SET gbk DEFAULT NULL,
`replace` varchar(20) CHARACTER SET gbk DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records
-- ----------------------------
INSERT INTO `cz_str_replace` VALUES ('1', '0', '肌肉', '鸡肉');
INSERT INTO `cz_str_replace` VALUES ('2', '0', '怎么', '如何');
INSERT INTO `cz_str_replace` VALUES ('3', '0', '为何', '为什么');
INSERT INTO `cz_str_replace` VALUES ('4', '0', '为什么', '为何');
INSERT INTO `cz_str_replace` VALUES ('5', '0', '几种', '那些');
INSERT INTO `cz_str_replace` VALUES ('6', '0', '正解', '详解');
PS:interconvert用法:0为默认值,即替换; 1是替换(替换)
2.准备启动采集php程序,打开include/dede采集.class.php
先给类添加一个替换方法
//采集内容伪原创替换
function pr_str_replace($str)
{
$dsql = new DedeSql(false);
$dsql->SetQuery("SELECT * FROM `cz_str_replace`");
$dsql->Execute();
while ($row = $dsql->GetArray())
{
if($row['interconvert'] == 1)
{
$str = str_replace($row['find'], "@@@@", $str);
$str = str_replace($row['replace'], $row['find'], $str);
$str = str_replace("@@@@", $row['replace'], $str);
}
else if($row['interconvert'] == 0)
{
$str = str_replace($row['find'], $row['replace'], $str);
}
}
return $str;
}
接下来,在采集入库前需要替换的内容中加入这个方法
//伪原创标题替换
$v['title'] = $this->pr_str_replace($v['title']);
$inquery = "INSERT INTO `#@__co_htmls` (`nid` ,`typeid`, `title` , `litpic` , `url` , `dtime` , `isdown` , `isexport` , `result`)
VALUES ('{$this->noteId}' , '0', '".addslashes($v['title'])."' , '".addslashes($v['image'])."' , '".addslashes($v['link'])."' , 'dtime' , '0' , '0' , ''); ";
$this->dsql->ExecuteNoneQuery($inquery);
3.大功告成,按一下采集按钮...
好的,让我们为初学者尝试一下