php 伪原创词库(一个38个汉字的原创度获取源代码?(组图))
优采云 发布时间: 2021-10-08 16:38php 伪原创词库(一个38个汉字的原创度获取源代码?(组图))
前言
我去年写了一个PHP伪原创工具,但是有时候需要查看伪原创之后的文章原创度,也就是说在搜索引擎上有没有类似的文章。
本次原创度检测源生成以百度搜索为标准。
先拼凑百度搜索的url,百度限制搜索词38个汉字以内,其他的将被丢弃。
好的,现在百度搜索的url也可以了,那如何查看文章的原创度?
PHPcurl 访问函数源码
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;}
首先去除一篇文章文章的所有html标签,然后需要使用下面的代码去除无用的html和字符。
function ClearHtml($str){ $str = trim($str); $str = strip_tags($str,""); $str = preg_replace("//","",$str); $str = preg_replace("//","",$str); $str = preg_replace("//","",$str); $str = preg_replace("//","",$str); $str = preg_replace("/ /","",$str); $str = preg_replace("/ /","",$str); return trim($str); }
那么我们要把重新排列的文章分割成一个38个汉字的数组,使用的代码是
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环境。
mb_str_split ( string $string [, int $split_length = 1 [, string $encoding = mb_internal_encoding() ]] ) : array注:https://www.php.net/manual/zh/function.mb-str-split.php
以下是文章中原创的38个汉字之一的源码。我就不一一解释了。感觉我这里的代码不是很好。如果优化好了,请回复,谢谢。
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(.*?)/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;$i90){$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];}}
单个原创度检测
我们已经写完了一组 38 个汉字。现在我们需要查询多组一组。以下是源码
function ycl($content){$info=mbStrSplit($content);$count=count($info)-1;if($count 85){$str = "原创度非常棒,属于原创文章,可以发布。";}return ['ycl'=>$ycd,'info'=>$str]; }
然后随便在网上找了一篇文章的文章,测试的结果是:
好的,就是这样,谢谢观看。