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; } }