美文网首页程序猿的进阶屋
搜索html源码中标签包的纯文本

搜索html源码中标签包的纯文本

作者: dreamer_lk | 来源:发表于2020-03-12 15:30 被阅读0次
public static function getResourceByTemp($html)
    {
        $html      = preg_replace("/<!--.*?-->/is", '', $html); //删除注释
        $html      = preg_replace("/<style.*?>.*?<\/style>/is", '', $html); //删除style标签
        $html      = preg_replace("/<script.*?>.*?<\/script>/is", '', $html); //删除js标签
        $separator = '::#::myself::#::'; //自己设定的,特有的分隔符
        $html      = preg_replace("/<.*?>/is", $separator, $html);
        $arr       = array_filter(explode($separator, $html));
        $array     = [];
        foreach ($arr as $k => $v) {
            $v = trim($v);
            if (!empty($v)) {
                if (strpos(PHP_EOL, $v)) {
                    //有些字符里面会还有换行,再分析一次并去掉字符前后的空格。
                    $tmp = explode(PHP_EOL, $v);
                    foreach ($tmp as $val) {
                        $val = trim($val);
                        if (!empty($val)) {
                            $array[] = $val;
                        }
                    }
                } else {
                    //如果没有换行,直接赋值
                    $array[] = $v;
                }
            }
        }
        foreach ($array as $k => $v) {
            //去掉纯数字的元素
            if (is_numeric($v)) {
                unset($array[$k]);
            }
            //去掉纯符号的元素
            $pregStr = preg_replace("/[\x{4e00}-\x{9fa5}A-Za-z0-9]/u", '', $v);
            if ($v == $pregStr) {
                unset($array[$k]);
            }
            //去掉类似&#xe61b;这种图标字符
            if (strpos($v, '&#x') !== false && (strlen($v) == 7 || strlen($v) == 8)) {
                unset($array[$k]);
            }
        }
        $result = [];
        $array  = array_unique($array);
        foreach ($array as $v) {
            $result[] = ['text' => trim($v), 'len' => mb_strlen($v)];
        }
        array_multisort(array_column($result, 'len'), SORT_DESC, $result); //按字符长度倒序
        return $result;
    }

相关文章

  • 搜索html源码中标签包的纯文本

  • iOS 去除html代码中的标签

    去除html代码中的标签,获取纯文本内容

  • html标签

    文本 纯文本 .txt 和 .html一样是纯文本 html超文本标记语言 html是语义标签,是给文本添加上了语...

  • H5常用标签

    文本 纯文本 .txt 和 .html一样是纯文本 html超文本标记语言 html是语义标签,是给文本添加上了语...

  • 文本渲染的三种方法

    1、{{ }} 将元素当成纯文本输出 2、v-html 将元素当成HTML标签解析后输出(用于后台输出html标签...

  • vue指令补充

    v-html作用 : 操作元素中的HTML标签 v-text会将元素当成纯文本输出,v-html会将元素当成HTM...

  • HTML学习日志

    HTML文档表示网页 HTML文档描述网页 HTML 文档包含 HTML 标签和纯文本 HTML 文档也被称为网页...

  • vue中的指令:

    1,v-html: 操作元素中的HTML标签 2,v-text: 操作元素中的纯文本 3,v-once:只绑定一次...

  • 08.js获取标签中的内容

    //获取标签中的HTML内容 console.log($('#outer').html()) //获取标签中的文本...

  • 网页设计:HTML常用的五种标签

    div标签 p标签 span标签 a标签 img标签 html:超级文本标记语言 1,div标签: 是在html中...

网友评论

    本文标题:搜索html源码中标签包的纯文本

    本文链接:https://www.haomeiwen.com/subject/ytrpjhtx.html