ThinkPHP/Extend/Library/ORG/Util/HtmlExtractor.class.php
(开头部分) 7KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
/* 海龙挖掘机 2.0正式版
* 正文提取,分析,可自动判断编码,自动转码
* 原理:根据代码块加权的原理,首先将HTML分成若干个小块,然后对每个小块进行评分。
* 取分数在3分以上的代码块中的内容返回
* 加分项 1 含有标点符号
* 2 含有<p>标签
* 3 含有<br>标签
* 减分项 1 含有li标签
* 2 不包含任何标点符号
* 3 含有关键词javascript
* 4 不包含任何中文的,直接删除
* 5 有<li><a这样标签
* 实例:
* $he = new HtmlExtractor();
* $str = $he->text($html);
* 其中$html是某个网页的HTML代码,$str是返回的正文,正文编码是utf-8的
*/
class HtmlExtractor {
/*
* 取得汉字的个数(目前不太精确)
*/
function chineseCount($str){
$count = preg_match_all("/[\xB0-\xF7][\xA1-\xFE]/",$str,$ff);
return $count;
}
/*
* 判断一段文字是否是UTF-8,如果不是,那么要转成UTF-8
*/
function getutf8($str){
if(!$this->is_utf8(substr(strip_tags($str),0,500))){
$str = $this->auto_charset($str,"gbk","utf-8");
}
return $str;
}
function is_utf8($string)
{
if(preg_match("/^([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}/",$string) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}$/",$string) == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){2,}/",$string) == true){
return true;
}else{
return false;
}
}
/*
* 自动转换字符集,支持数组和字符串
*/
function auto_charset($fContents,$from,$to){
$from = strtoupper($from)=='UTF8'? 'utf-8':$from;
$to = strtoupper($to)=='UTF8'? 'utf-8':$to;
if( strtoupper($from) === strtoupper($to) || empty($fContents) || (is_scalar($fContents) && !is_string($fContents)) ){
//如果编码相同或者非字符串标量则不转换
return $fContents;
}
if(is_string($fContents) ) {
if(function_exists('mb_convert_encoding')){
return mb_convert_encoding ($fContents, $to, $from);
后面还有 162 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
