zoukankan      html  css  js  c++  java
  • legend3---设置课程视频的seo的关键词

    legend3---设置课程视频的seo的关键词

    一、总结

    一句话总结:

    在中文和其它类型的文字中添加空格即可,也就是【拆分中文和其它类型的文字】,这样将【视频标题】拆分的结果一般就可以是视频的关键字,再加上【课程的关键字】,就非常nice了
        //拆分视频的关键字
        public static function split_video_keywords($video_title){
    
            //1、去掉视频标题前的课程序号
            //比如去掉 3.3、砝码称重-01背包2  前面的 3.3、
            $now_str = self::delete_video_num($video_title);
            //"砝码称重-01背包"
            dump($now_str);
    
            //2、相邻的中文和其它类型的文字之间加空格
            $ans_str=self::add_space($now_str);
            dump($ans_str);
    
            //3、对视频标题按照特殊符号(比如-)进行替换
            //变成'/[-|(|)|(|)]/i'后,会有一些情况是乱码
            $pattern2 = '/[-]/i';
            $ans_str=preg_replace($pattern2, ' ', $ans_str);
            dump($ans_str);
    
            //4、将多个空格替换成一个
            $pattern4 = '/s{1,}/';
            $ans_str=preg_replace($pattern4,' ',$ans_str);
            $ans_str=trim($ans_str);
            dump($ans_str);
            return $ans_str;
            //($ans_str);
        }


        //3、相邻的中文和其它类型的文字之间加空格
        public static function add_space($str){
            $str_arr=self::mb_str_split($str);
            $now_type_Chinese=false;//当前字符是中文么
            $last_type_Chinese=false;//上一个字符是中文么
            $ans_str="";
            foreach ($str_arr as $key => $val){
                //dump($val);
                //dump(self::isChinese($val));
                if(self::isChinese($val)){
                    $now_type_Chinese=true;
                }else{
                    $now_type_Chinese=false;
                }
                //如果上一个字符和这个字符不同为中文,就拼接字符串
                //dump([$last_type_Chinese,$now_type_Chinese]);
                if($now_type_Chinese!=$last_type_Chinese) $ans_str.=" ";
    
                //4、将中文中的特殊字符【比如“的、和”】替换成空格
                $chinese_empty_word=['的','和','之','在','中','里','也','是','求'];
                if(in_array($val,$chinese_empty_word)) $val=" ";
    
                //把当前字符拼接进结果字符串
                $ans_str.=$val;
                $last_type_Chinese=$now_type_Chinese;
            }
            return $ans_str;
        }

    1、遍历带中文的字符串?

    用正则拆分成数组,然后数组的元素一个个遍历即可
    //2、拆分一个中文字符串
    public static function mb_str_split($string) {
      // /u表示把字符串当作utf-8处理,并把字符串开始和结束之前所有的字符串分割成数组
      return preg_split('/(?<!^)(?!$)/u', $string );
    }

    2、php将多个空格替换成一个?

    $ans_str=preg_replace('/s{1,}/',' ',$ans_str);
    //4、将多个空格替换成一个
    $pattern4 = '/s{1,}/';
    $ans_str=preg_replace($pattern4,' ',$ans_str);
    $ans_str=trim($ans_str);

    3、php判断一个字符是中文还是英文?

    return preg_match('/^[x{4e00}-x{9fa5}]+$/u',$str);
    //1、判断一个字符是中文还是英文
    public static function isChinese($str){
      return preg_match('/^[x{4e00}-x{9fa5}]+$/u',$str);
    }

    二、设置课程视频的seo的关键词

    博客对应课程的视频位置:

    <?php
    
    namespace AppModelHomeSeo;
    
    use IlluminateDatabaseEloquentModel;
    
    //处理前端网页中的seo中的keywords
    class Keywords extends Model
    {
        //拆分视频的关键字
        public static function split_video_keywords($video_title){
    
            //1、去掉视频标题前的课程序号
            //比如去掉 3.3、砝码称重-01背包2  前面的 3.3、
            $now_str = self::delete_video_num($video_title);
            //"砝码称重-01背包"
            dump($now_str);
    
            //2、相邻的中文和其它类型的文字之间加空格
            $ans_str=self::add_space($now_str);
            dump($ans_str);
    
            //3、对视频标题按照特殊符号(比如-)进行替换
            //变成'/[-|(|)|(|)]/i'后,会有一些情况是乱码
            $pattern2 = '/[-]/i';
            $ans_str=preg_replace($pattern2, ' ', $ans_str);
            dump($ans_str);
    
            //4、将多个空格替换成一个
            $pattern4 = '/s{1,}/';
            $ans_str=preg_replace($pattern4,' ',$ans_str);
            $ans_str=trim($ans_str);
            dump($ans_str);
            return $ans_str;
            //($ans_str);
        }
    
        /****************************二:工具函数部分***************************/
        //1、判断一个字符是中文还是英文
        public static function isChinese($str){
            return preg_match('/^[x{4e00}-x{9fa5}]+$/u',$str);
        }
    
        //2、拆分一个中文字符串
        public static function mb_str_split($string) {
            // /u表示把字符串当作utf-8处理,并把字符串开始和结束之前所有的字符串分割成数组
            return preg_split('/(?<!^)(?!$)/u', $string );
    //        return preg_split('/[x{4e00}-x{9fa5}]/u', $string );
        }
    
        //3、相邻的中文和其它类型的文字之间加空格
        public static function add_space($str){
            $str_arr=self::mb_str_split($str);
            $now_type_Chinese=false;//当前字符是中文么
            $last_type_Chinese=false;//上一个字符是中文么
            $ans_str="";
            foreach ($str_arr as $key => $val){
                //dump($val);
                //dump(self::isChinese($val));
                if(self::isChinese($val)){
                    $now_type_Chinese=true;
                }else{
                    $now_type_Chinese=false;
                }
                //如果上一个字符和这个字符不同为中文,就拼接字符串
                //dump([$last_type_Chinese,$now_type_Chinese]);
                if($now_type_Chinese!=$last_type_Chinese) $ans_str.=" ";
    
                //4、将中文中的特殊字符【比如“的、和”】替换成空格
                $chinese_empty_word=['的','和','之','在','中','里','也','是','求'];
                if(in_array($val,$chinese_empty_word)) $val=" ";
    
                //把当前字符拼接进结果字符串
                $ans_str.=$val;
                $last_type_Chinese=$now_type_Chinese;
            }
            return $ans_str;
        }
    
        //4、去掉视频名字前面的标号
        public static function delete_video_num($video_title){
            $video_title= trim($video_title);
            $pattern = '/^((d+)[.|、|。]+)+/i';
            $now_str=preg_replace($pattern, '', $video_title);
            return $now_str;
        }
    }

     
  • 相关阅读:
    奇妙的html 和 Css【关于html、Css 开发中重要的细节和一些小奇怪现象】
    JavaWeb项目img标签的图片无法加载的原因及解决方法
    批量建堆(二叉堆【完全二叉堆】)~~批量建堆
    为什么要面向对象(转)
    不从0开始序列的matlab卷积实验
    虚数、傅里叶变换中负频率的意义
    运动的6个自由度
    转载:关于Ω, f, w的前世今生
    利用matplotlib画用于机器学习的K线图练手任务
    信息工程学院——电子信息工程到底学什么?
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/13285502.html
Copyright © 2011-2022 走看看