获取字符串类型/**

* 判断中英文

*/

public function checkStr($str){

$output = ‘‘; ///\/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,‘+‘,

‘-‘, ‘\‘‘, ‘/‘, ‘\\‘, ‘[‘, ‘]‘, ‘{‘, ‘}‘, ‘è‘, ‘β‘, ‘±‘, ‘^‘, ‘’‘, ‘~‘, ‘-‘, ‘+‘, ‘.‘, ‘。‘, ‘\‘‘, ‘#‘, [email protected], ‘!‘, ‘&‘, ‘*‘, ‘‘, ‘%‘, ‘α‘, ‘γ‘, ‘ε‘, ‘‘, ‘‘, ‘‘ , ‘[‘, ‘]‘, ‘-‘, ‘δ‘, ‘+‘, ‘【‘, ‘】‘, ‘#‘, ‘;‘, ‘\\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,

‘-‘, ‘\‘‘, ‘/‘, ‘\\‘, ‘[‘, ‘]‘, ‘{‘, ‘}‘, ‘è‘, ‘β‘, ‘±‘, ‘^‘, ‘’‘, ‘~‘, ‘-‘, ‘+‘, ‘.‘, ‘。‘, ‘\‘‘, ‘#‘, [email protected], ‘!‘, ‘&‘, ‘*‘, ‘‘, ‘%‘, ‘α‘, ‘γ‘, ‘ε‘, ‘‘, ‘‘, ‘‘ , ‘[‘, ‘]‘, ‘-‘, ‘δ‘, ‘+‘, ‘【‘, ‘】‘, ‘#‘, ‘;‘, ‘\\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;

$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

$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);

}

retrun $message;

}

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

原文:http://liuzan.blog.51cto.com/6103676/1561279

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

  1. c语言字符串前加l,【C】 30_C语言中的字符串

    字符串的概念 字符串是有序字符的集合 字符串是程序中的基本元素之一 C 语言中没有字符串的概念 C 语言中通过特殊的字符数组模拟字符串 C 语言中的字符串是以 '\0' 结尾的字符数组 字符串与字符数 ...

  2. 【转】SQL函数:字符串中提取数字,英文,中文,过滤重复字符

    SQL函数:字符串中提取数字,英文,中文,过滤重复字符 --提取数字 IF OBJECT_ID('DBO.GET_NUMBER') IS NOT NULL DROP FUNCTION DBO.GET_ ...

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

    获取字符串类型 /*** 判断中英文*/ public function checkStr($str){$output = ''; ///\<[\s\S]*\>/i$a = preg_ma ...

  4. JavaScript去除字符串中所有的标点符号,只保留中文、英文和数字

    JavaScript去除字符串中所有的标点符号,只保留中文.英文和数字 function handleStr(str) {var arr = str.replace(/[`:_.~!@#$%^& ...

  5. java string中文_Java将String字符串的英文双引号批量转换成中文双引号

    除了下面的方法,当然也可以使用正则进行匹配,方法众多/** * 将字符串的英文双引号替换为中文双引号 * @author X-rapido */ public class ReplaceString  ...

  6. html表单判断字符数,JS判断字符串长度,结合element el-input el-form 表单验证(英文占1个字符,中文汉字占2个字符)...

    首先看看判断字符串长度的几种方法(英文占1个字符,中文汉字占2个字符) 方法一: function strlen(str) { var len = 0; for (var i = 0; i < ...

  7. JS判断字符串长度(英文占1个字符,中文汉字占2个字符)

    //计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: String.prototype.gblen = function() { var len = 0; for (var i=0; i ...

  8. php判断中文字符长度,JavaScript_JS判断字符串长度的5个方法(区分中文和英文),目的:计算字符串长度(英文占 - phpStudy...

    JS判断字符串长度的5个方法(区分中文和英文) 目的:计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: String.prototype.gblen = function() { var ...

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

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

最新文章

  1. 跟我学Springboot开发后端管理系统7:Matrxi-Web权限设计
  2. Python爬虫入门教程 33-100 《海王》评论数据抓取 scrapy
  3. 【排序】归并类排序—归并排序(逆序数问题)
  4. linux 查看cpu和磁盘使用情况
  5. Linux二进制实用工具Binutils工具集解析()
  6. vs linux版本,VSCodium:100% 开源的 VS Code | Linux 中国
  7. Netty 5.X 官方指南翻译版6:Writing a Time Client
  8. linux下安装python3.6
  9. XPATH获取USER列用户ID的小方法
  10. java 常量池是什么_Java常量池理解与总结
  11. 深入Managed DirectX9(十五)
  12. c语言不用的行参警告,如何在C语言中禁止“未使用的参数”警告?
  13. 【BZOJ-1090】字符串折叠 区间DP + Hash
  14. 实现有管理功能的ASP留言板
  15. java 弹弹堂源码_弹弹堂s应用宝版下载
  16. 数电笔记之逻辑函数卡诺图化简
  17. 发现同构:Gartner曲线、达克效应 与 跨越鸿沟
  18. 2021-09-10体脂模块做体脂秤方案,体脂秤模块原理解析
  19. 安大计算机学院汤进,“CCF合肥庐州论坛——认知计算研讨会”成功举办
  20. Nginx 部署、反向代理配置、负载均衡

热门文章

  1. ZC-23型冲击继电器
  2. VC++6.0安装教程
  3. 正则化-最通俗的解释
  4. linux 媒体管理器,Linux系统的多媒体管理大师-Compupic
  5. 全屏背景半透明对话框用PhotoView显示图片放大缩小图片
  6. photoshop第四章:图片的处理
  7. 使用 URLConnection 提交请求
  8. 能量收集认知传感器网络——论文结构扫盲
  9. 论文笔记——基于多传感器融合的定位建图及导航研究
  10. web客户端授权验证-proxy