php纯文本源码,[PHP源码]文章原创度检测源码

本帖最后由 无名小银 于 2020-8-16 14:24 编辑

前言

本人去年写了一个PHP伪原创的工具,但是有时候还需要查看一下伪原创后的文章原创度,换句话说在搜索引擎上是否有类似的文章。

本次原创度检测源代使用百度搜索为准。

首先拼凑百度搜索的url,并且百度限制了搜索词在38个汉字以内,其他的会被丢弃。

https://www.baidu.com/s?ie=utf8&wd=关键词

php curl访问函数源代码

[PHP] 纯文本查看 复制代码function curl($url){

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$url);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

$httpheader[] = "Accept:*/*";

$httpheader[] = "Accept-Encoding:gzip,deflate,sdch";

$httpheader[] = "Accept-Language:zh-CN,zh;q=0.8";

$httpheader[] = "Connection:close";

curl_setopt($ch, CURLOPT_HTTPHEADER, $httpheader);

curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3314.0 Safari/537.36 SE 2.X MetaSr 1.0');

curl_setopt($ch, CURLOPT_ENCODING, "gzip");

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

$ret = curl_exec($ch);

curl_close($ch);

return $ret; }

好了,现在百度搜索的url也有了,那怎么检查一篇文章的原创度了?

首先要把一篇文章的所有html标签去掉,那就需要使用以下代码

[PHP] 纯文本查看 复制代码function ClearHtml($str)

{

$str = trim($str);

$str = strip_tags($str,"");

$str = preg_replace("/\t/","",$str);

$str = preg_replace("/\r\n/","",$str);

$str = preg_replace("/\r/","",$str);

$str = preg_replace("/\n/","",$str);

$str = preg_replace("/ /","",$str);

$str = preg_replace("/ /","",$str);

return trim($str);

}

然后就要把重新整理好的文章分隔成为每38个汉字为一组的数组,所使用的代码为

[PHP] 纯文本查看 复制代码function mbStrSplit ($string, $len=38) {

$start = 0;

$strlen = mb_strlen($string);

while ($strlen) {

$array[] = mb_substr($string,$start,$len,"utf8");

$string = mb_substr($string, $len, $strlen,"utf8");

$strlen = mb_strlen($string);

}

return $array;

}

如果你的PHP环境为PHP7.4可直接使用以下内置函数把文章分割为38个汉字为一组,不过我这里是使用的上面的,暂时没有搭建最新的PHP环境。

[PHP] 纯文本查看 复制代码mb_str_split ( string $string [, int $split_length = 1 [, string $encoding = mb_internal_encoding() ]] ) : array

注:[url=https://www.php.net/manual/zh/function.mb-str-split.php]https://www.php.net/manual/zh/function.mb-str-split.php[/url]

以下为文章中其中一个38个汉字的原创度获取源代码,我就不一一解释了,我感觉我这里代码写的不太好,如果您有优化好的,请回复,谢谢。

[PHP] 纯文本查看 复制代码function bdycl($content){

$info=curl('https://www.baidu.com/s?ie=utf8&wd='.urlencode($content));

preg_match_all("/

(.*?)(.*?)href=\"(.*?)\"/is", $info,$baidu);

$count1=count($baidu['1']);

for($i=0;$i

preg_match_all("/(.*?)/is", $baidu['1'][$i],$baidu_em);

$count=count($baidu_em[1]);

if($count>1){

$baiduem='';

foreach($baidu_em[1] as $value){

$baiduem.=$value;

}

$bdem[]=[

'content'=>$baiduem,

'url'=>$baidu['3'][$i]

];

}else{

$bdem[]=[

'content'=>@$baidu_em[1][0],

'url'=>$baidu['3'][$i]

];

}

}

if(is_array($bdem)){

$count=count($bdem);

$in=[];

for($i=0;$i

similar_text($content,$bdem[$i]['content'],$per);

$ii=ceil($per);

$similar[]=$ii;

if($ii>90){

$in[]=[

'similar'=>$ii,

"content"=>$bdem[$i]['content'],

'url'=>$bdem[$i]['url']

];

}

}

array_multisort(array_column($in,'similar'),SORT_DESC,$in);

if(isset($in['0'])){

$in=$in['0'];

}

return ['similar'=>(100-array_sum($similar)/count($bdem)),'content'=>$in];

}

}

55fd2b2273b5a8b4531f72773c469d6e.gif

1597558630(1).png (14.19 KB, 下载次数: 1)

2020-8-16 14:24 上传

单独一组38个汉字咱们已经写完了,现在需要来一个查询多组的。以下为源代码

[PHP] 纯文本查看 复制代码function ycl($content){

$info=mbStrSplit($content);

$count=count($info)-1;

if($count<11){

$rand=$count+1;

}else{

$rand='10';

}

$tmp = range(0,$count);

$array_rand=array_rand($tmp,$rand);

foreach($array_rand as $v){

$ycl[]=bdycl($info[$v]);

}

$count=count($ycl);

for($i=0;$i

$similar[$i]=$ycl[$i]['similar'];

}

$ycd=ceil(((array_sum($similar)/count($ycl))));

if($ycd <=30){

$str = "原创度非常低,不建议发布。";

}else if($ycd <=60 && $ycd > 30){

$str = "原创度比较低,建议修改后再发布。";

}else if($ycd <=75 && $ycd > 60){

$str = "原创度还可以,建议修改后再发布。";

}else if($ycd <= 85 && $ycd > 75){

$str = "原创度较好,属于原创文章,可以发布。";

}else if($ycd > 85){

$str = "原创度非常棒,属于原创文章,可以发布。";

}

return ['ycl'=>$ycd,'info'=>$str];

}

然后随便从网上找一篇文章,进行检测的结果为:

55fd2b2273b5a8b4531f72773c469d6e.gif

1597558483(1).png (8.9 KB, 下载次数: 1)

2020-8-16 14:23 上传

好了,到此结束,谢谢大家的观看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
了然文章创度检测软件目标:用来帮助SEO管理者,在百度对文章创度日益严苛的今天,准确把握站内文章原创细节,杜绝站内、站外雷同甚至近似的文章出现,做到真正的“原创”,并提供可靠参考数值用来帮助评定编辑工作标准。   用途: 1.在日常编辑管理工作中,本工具可检测一篇文章中,每个段落在网络上出现的次数(即飘红次数),进而得出文章原创部分百分比。 2.有效避免字不同思路相同的简单伪原创方法(因为百度已可以识别,推荐多文章混合伪原创),通过整篇文章检测结果中的网址,可以找到与站内文章主题、论点相似的文章也就是近似文章,就算排版不同、替换近义词、增加原创段落,也依然也可以找到。 2.提供原创文章百分比(根据飘红数量),提供相似文章数量(数值不准,但可以准确反映出相同文章的规模大小),可用来改进外推文章选择和制定编辑工作评定衡量标准。   使用说明: 首先,先安装.net framework 4.0 框架程序必须是4.0或更高级版,使用本工具因为飘红检查依赖搜索引擎所以,必须联网才能正常使用本工具; 其次,手工复制要检查的站内文章,将其粘贴在软件第一个本框内; 再次,点击检查; 再再次,稍等片刻过后,相似文章数量,文章创度都会显示出来。但建议你看看"整篇文章创度检测结果"中的内容,第一条网址一定是最相似的,如果有一模一样的文章一定会排第一,如果没有找到相似的文章,也会出现结果,但第一条网址你一打开就能发现是不是相似度很高,毕竟理论上不存在毫不相关的文章,所以一定会找到结果,只是结果与检查文章在阅读起来的相似程度不一样罢了; 再再再次,软件上面的那些数字小参数如原创检测标准等,推荐不要修改直接用默认的,原创检测标准是判断原创段落的飘红次数,在几次之内算原创;

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值