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 积分,解读结果公开显示在下面。

还没有人解读过这个文件。