php中文字符串转英文,php 字符串转数组 提取中文 提取英文 字符串类型
获取字符串类型/**
* 判断中英文
*/
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 字符串转数组 提取中文 提取英文 字符串类型相关推荐
- c语言字符串前加l,【C】 30_C语言中的字符串
字符串的概念 字符串是有序字符的集合 字符串是程序中的基本元素之一 C 语言中没有字符串的概念 C 语言中通过特殊的字符数组模拟字符串 C 语言中的字符串是以 '\0' 结尾的字符数组 字符串与字符数 ...
- 【转】SQL函数:字符串中提取数字,英文,中文,过滤重复字符
SQL函数:字符串中提取数字,英文,中文,过滤重复字符 --提取数字 IF OBJECT_ID('DBO.GET_NUMBER') IS NOT NULL DROP FUNCTION DBO.GET_ ...
- php 字符串转数组 提取中文 提取英文 字符串类型
获取字符串类型 /*** 判断中英文*/ public function checkStr($str){$output = ''; ///\<[\s\S]*\>/i$a = preg_ma ...
- JavaScript去除字符串中所有的标点符号,只保留中文、英文和数字
JavaScript去除字符串中所有的标点符号,只保留中文.英文和数字 function handleStr(str) {var arr = str.replace(/[`:_.~!@#$%^& ...
- java string中文_Java将String字符串的英文双引号批量转换成中文双引号
除了下面的方法,当然也可以使用正则进行匹配,方法众多/** * 将字符串的英文双引号替换为中文双引号 * @author X-rapido */ public class ReplaceString ...
- html表单判断字符数,JS判断字符串长度,结合element el-input el-form 表单验证(英文占1个字符,中文汉字占2个字符)...
首先看看判断字符串长度的几种方法(英文占1个字符,中文汉字占2个字符) 方法一: function strlen(str) { var len = 0; for (var i = 0; i < ...
- JS判断字符串长度(英文占1个字符,中文汉字占2个字符)
//计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: String.prototype.gblen = function() { var len = 0; for (var i=0; i ...
- php判断中文字符长度,JavaScript_JS判断字符串长度的5个方法(区分中文和英文),目的:计算字符串长度(英文占 - phpStudy...
JS判断字符串长度的5个方法(区分中文和英文) 目的:计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: String.prototype.gblen = function() { var ...
- 字符串提取 中文、英文、数字
有时候需要判断拿到的字符串包含 中文.英文.数字, 提取中文 str.replace(/[^\u4E00-\u9FA5]/g,'') 提取英文 str.replace(/[^a-zA-Z]/g,'') ...
最新文章
- 跟我学Springboot开发后端管理系统7:Matrxi-Web权限设计
- Python爬虫入门教程 33-100 《海王》评论数据抓取 scrapy
- 【排序】归并类排序—归并排序(逆序数问题)
- linux 查看cpu和磁盘使用情况
- Linux二进制实用工具Binutils工具集解析()
- vs linux版本,VSCodium:100% 开源的 VS Code | Linux 中国
- Netty 5.X 官方指南翻译版6:Writing a Time Client
- linux下安装python3.6
- XPATH获取USER列用户ID的小方法
- java 常量池是什么_Java常量池理解与总结
- 深入Managed DirectX9(十五)
- c语言不用的行参警告,如何在C语言中禁止“未使用的参数”警告?
- 【BZOJ-1090】字符串折叠 区间DP + Hash
- 实现有管理功能的ASP留言板
- java 弹弹堂源码_弹弹堂s应用宝版下载
- 数电笔记之逻辑函数卡诺图化简
- 发现同构:Gartner曲线、达克效应 与 跨越鸿沟
- 2021-09-10体脂模块做体脂秤方案,体脂秤模块原理解析
- 安大计算机学院汤进,“CCF合肥庐州论坛——认知计算研讨会”成功举办
- Nginx 部署、反向代理配置、负载均衡