获取字符串类型

/*** 判断中英文*/
public function checkStr($str){$output = ''; ///\<[\s\S]*\>/i$a = preg_match('/[' . chr(0xa1) . '-' . chr(0xff) . ']/i', $str);$b = preg_match('/[0-9]/i', $str);$c = preg_match('/[a-zA-Z]/i', $str);if($a && $b && $c){$output = 1; //'汉字数字英文的混合字符串';}elseif($a && $b && !$c){$output = 2; //'汉字数字的混合字符串';}elseif($a && !$b && $c){$output = 3; //'汉字英文的混合字符串';}elseif(!$a && $b && $c){$output = 4; //'数字英文的混合字符串';}elseif($a && !$b && !$c){$output = 5; //'纯汉字';}elseif(!$a && $b && !$c){$output = 6; //'纯数字';}elseif(!$a && !$b && $c){$output = 7; //'纯英文';}return $output;
}

提取中文

/*** * 只提取中文名称* @param $srchKeyword*/
public function getCN($srchKeyword){$preg_repOne = array("|[0-9a-zA-Z/-]+|", '/\(|\)/', '/\《|\》/', '/\+|\-|\*|\//' , '/\{|\}/', '/\<|\>/', '/\【|\】/', '/\[|\]/', '/\(|\)/');$preg_repTwo = array(' ',PHP_EOL,'+','-', '\'', '/', '\\', '[', ']', '{', '}', 'è', 'β', '±', '^', '’', '~', '-', '+', '.', '。', '\'', '#', '@', '!', '&', '*', '<', '>', '%', 'α', 'γ', 'ε', '', '<i>', '</i>' , '[', ']', '-', 'δ', '+', '【', '】', '#', ';', '\\r', '\′', '′', ',', '_');$str = preg_replace($preg_repOne, array('', ''), $srchKeyword);$str = str_replace($preg_repTwo, array('', ''), $str);$str = mb_substr($str,0,255,'utf-8');return trim($str);
}

提取英文

/*** 提取英文* @param $srchKeyword*/
public function getEN($srchKeyword){$preg_repOne = array('/[-][a-zA-Z][0-9]/i', '/[0-9]/i', '/[a-zA-Z][0-9][-]/i', '/[^\[0-9]da-zA-Z]/i', '/\(|\)/', '/\《|\》/', '/\+|\-|\*|\//' , '/\{|\}/', '/\<|\>/', '/\【|\】/', '/\[|\]/', '/\(|\)/');$preg_repTwo = array(' ',PHP_EOL,'-', '\'', '/', '\\', '[', ']', '{', '}', 'è', 'β', '±', '^', '’', '~', '-', '+', '.', '。', '\'', '#', '@', '!', '&', '*', '<', '>', '%', 'α', 'γ', 'ε', '', '<i>', '</i>' , '[', ']', '-', 'δ', '+', '【', '】', '#', ';', '\\r', '\′', '′', '(', ')', '(', ')', ',', '_');$str = preg_replace($preg_repOne, array('', ''), $srchKeyword);$str = str_replace($preg_repTwo, array('', ''), $str);$str = mb_substr($str, 0, 255, 'utf-8');return strtolower($str);
}

字符串转数组

/**
* 字符串转数组
* @param $key_words 传入的字符串
* @param $type 字符串类型
*/
function get_key_arr($key_words,$type = 'en'){
$ex_ = 1;
$str_len = strlen($key_words);
$return_arr = '';
if($type == 'cn'){$ex_ = 3;//汉字占3个长度$str_num = ceil($str_len/$ex_);for ($i = 1; $i <= $str_num; $i++) {$start = ($i-1)*$ex_;$return_arr [] = substr($key_words,$start,$ex_);}
}else{for ($i = 0; $i < $str_len; $i++) {$return_arr [] = $key_words[$i];}
}
$return_arr = array_unique($return_arr);
return $return_arr;
}

高亮显示

/*** 高亮显示函数* @param  $message 需要高亮字的符串* @param  $str        需要高亮的部分字符串* @param  $color   高亮显示颜色*/
function bat_highlight($message,$str,$color = '#ff0000'){$checkstr = $this->checkStr($str);
if($checkstr== 7 || $checkstr == 4){$words_info_en = $this->getEN($str);$return_arr = $this->get_key_arr($words_info_en);
}elseif($checkstr== 1 || $checkstr == 2 || $checkstr == 3 || $checkstr == 5){$words_info_cn = $this->getCN($str);$return_arr = $this->get_key_arr($words_info_cn,'cn');
}
foreach ($return_arr as $value) {$message = preg_replace("/($value)/i", '@#\1#@',$message);
}
/**
* 把标识替换回来
* @# == <span style="color:#ff0000">
* #@ == </span>
*/
$message = str_replace('@#', '<span style="color:'.$color.'">', $message);
$message = str_replace('#@', '</span>', $message);
return $message;
}

好了,到此结束,如有问题,给我留言!

转载于:https://blog.51cto.com/liuzan/1561279

php 字符串转数组 提取中文 提取英文 字符串类型相关推荐

  1. php中文字符串转英文,php 字符串转数组 提取中文 提取英文 字符串类型

    获取字符串类型/** * 判断中英文 */ public function checkStr($str){ $output = ''; ///\/i $a = preg_match('/[' . ch ...

  2. java字符串练习题2、反向输出英文字符串

    java字符串练习题2.反向输出英文字符串 目录 java字符串练习题2.反向输出英文字符串 题目 源码: 优化效率 英文中的14个标点符号 英文符号图标 题目 反向输出英文文章的难度在于单词不能有错 ...

  3. 字符串提取 中文、英文、数字

    有时候需要判断拿到的字符串包含 中文.英文.数字, 提取中文 str.replace(/[^\u4E00-\u9FA5]/g,'') 提取英文 str.replace(/[^a-zA-Z]/g,'') ...

  4. 提取文件出错_提取中文、英文和数字,其实很简单

    小伙伴们好啊,日常工作中,很多小伙伴都会遇到一些不规范的数据,很多小伙伴对字符串的提取问题也是头疼不已,今天咱们就分享一期关于字符串提取的内容.一.提取字符串中的英文先来看下面的数据,是一些混到一起的 ...

  5. SQL 判断字段值是否有中文、英文、数字、提取中文、英文、数字

    –SQL 判断字段值是否有中文 create function fun_getCN(@str nvarchar(4000)) returns nvarchar(4000) as begin decla ...

  6. go 验证字符串中是否包含中文或英文

    Go 验证字符串中是否包含中文(推荐) _ [IIS7站长之家] golang判断字符是不是字母-Golang-PHP中文网 基础知识 - Golang 中的正则表达式 - GoLove - 博客园 ...

  7. Java判断字符串是否是纯中文或者英文

    /** 是否是英文字符串*/public static boolean isEnglishStr(String charaString){return charaString.matches(&quo ...

  8. lua字符串转数组_深入Lua:字符串管理

    Lua的字符串对象表示为下面结构: typedef struct TString {CommonHeader;// 字符串的子类型有两种:长字符串和短字符串// 短字符串:extra表示Lua保留字的 ...

  9. java字符串替换 数组,Java工具类-拆分字符串组装数组,替换字符

    Java工具类--拆分字符串组装数组,替换字符 >>>>>>>>>>>>>>>>>>> ...

最新文章

  1. YOLOv5导出jit,onnx,engine
  2. 参数验证 @Validated 和 @Valid 的区别,Java Web 开发必备。
  3. Java服务GC参数调优案例
  4. 统计学习方法-李航(5)
  5. 关于设计RPC框架的几个问题
  6. (25)二分频verilog与VHDL编码(学无止境)
  7. 单片机串口通信与同步异步通信
  8. 什么是Thymeleaf?
  9. 【XSY2774】学习 带花树
  10. java多脚本顺序运行_关于eclipse里运行selenium脚本的顺序问题
  11. cantor数表 and nyoj85有趣的数
  12. python3ide使用方法_Python IDE
  13. js获取手机屏幕宽度、高度
  14. 美女图片采集器 源码+解析
  15. 在当前项目组中引入敏捷开发思想
  16. 藏宝阁游戏服务器维护中,梦幻西游2013年1月22日藏宝阁维护公告 17173.com网络游戏:《梦幻西游》专区...
  17. 单片机设计一个十字路口交通灯模拟控制系统(51单片机实训)
  18. 【Qt】disconnect一个lambda匿名函数
  19. 中考计算机考试作文,准备中考的作文4篇
  20. 手机浏览器APP哪几个值得推荐?为什么?

热门文章

  1. [转载翻译][重新整理]西川善司的”METAL GEAR SOLID 4”图形讲座(5)
  2. LINQ to SQL 之DataContext用法
  3. 主流Java报表工具的比较
  4. 计算机维护方面的知识和技巧,电脑硬件维护常识和方法【图文详解】
  5. ajax渲染数据到页面_爬虫进阶丨Ajax爬取案例实战
  6. C#开发Unity游戏教程之判断语句
  7. 计算机操作员中级操作试题,中级计算机操作员应知模拟考试试题(一)
  8. 腾讯微博qq说说备份导出工具_10年了!腾讯微博宣布关停,宜昌90后的青春不再!...
  9. 财务学习mysql_从零开始学 MySQL - 前言
  10. python课程水平测试成绩查询_学业水平测试成绩查询