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

获取字符串类型

/**
 * 判断中英文
 */
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;
	$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", ‘<span style="color:‘.$color.‘">\1</span>‘,$message);
}

retrun $message;
}

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

时间: 2024-10-10 08:24:06

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

char型字符串(数组)与string型字符串 指针与引用

一.常指针: int *const p;    //指针不可改变,但是指针指向的数据可以改变. 指向常量的指针: const int *p;    //指针可以改变,但是指针指向的数据不可以改变. 指向常量的常指针: const int *const p;    //指针不可改变,且指针指向的数据也不可改变. 引用就是别名,定义引用的同时必须要对引用进行初始化. 二.利用引用返回多个值: 引用就是别名,引用必须要初始化. #include "stdafx.h" #include <

js正则提取数字小数,提取中文,提取英文

var value="污染物:PM2.5"; //提取中文 console.log(value.replace(/[^\u4E00-\u9FA5]/g,'')); //提取英文 console.log(value.replace(/[^a-zA-Z]/g, '')); //提取数字 console.log(value.replace(/[^\d.]/g, '')); 原文地址:https://www.cnblogs.com/yeminglong/p/10325789.html

统计一段文字中数组、中文、英文字母、空格以及其他特殊字符出现的次数

package util; public class CountStr { /** * 有一个字符串,其中包含中文字符.英文字符和数字字符,请统计和打印出各个字符的个数 * 短信发送平台,短信字数控制查询方法 */ public static void main(String[] args) { //String str = "adasf AAADFD我是中文,,>123"; //String str = "金马甲高端商品交易平台--2013全城热恋克拉钻石项目预售,1

判断是否是中文、英文字符串

1 using System; 2 3 public class Example 4 { 5 public static void Main() 6 { 7 bool isChinese = false; 8 string CString = "a.有能力的:出色的"; 9 for (int i = 0; i < CString.Length; i++) 10 { 11 if (Convert.ToInt32(Convert.ToChar(CString.Substring(i,

Java 按照指定长度分割字符串(一种是纯英文字符串,一种是英汉混合的字符串)

最近在实现一个文稿导读功能时候用到字符串切割,简单说一下这个文稿导读,就是打开本地一个txt文件,展示在界面上,提供一个开始/暂停的button.开始,文本自动移动变红,速度自己可以控制,就是像歌词那样,一行一行的自动移动,变色的一行始终是展示的控件的中间.为什么用到字符串的切割呢?是因为不用分辨率和不同尺寸的屏幕显示字的个数是不一样的.在实现的时候我就想到根据展示控件(这里是自定义的TextView)的大小串来切割字符串的,以适应不同设备.在下一篇文章中实现这个"文稿导读"的功能,这

java 字符串截取类 区分中文、英文、数字、标点符号

package com.founder.fix.ims; /** * @author WANGYUTAO * 操作字符串 */ public class SubString { // public static void main(String[] args) { // String str = "我爱阿斯顿发生大法师大法上帝发誓地方时代发生大法师大法金"; // String str1 = "sdfdssfsfdsf把dsdafdafafdsfadas"; //

提取数字、英文、中文、过滤重复字符等SQL函数(含判断字段是否有中文)

在日常应用中,往往根据实际需求录入一些值,而这些值不能直接使用,所以Sql中经常会对字段值进行一些常规的处理.这里搜集了(提取数字.英文.中文.过滤重复字符.分割字符的方法),方便日后查询使用. 一.判断字段值是否有中文 --SQL 判断字段值是否有中文 create function fun_getCN(@str nvarchar(4000)) returns nvarchar(4000) as begin declare @word nchar(1),@CN nvarchar(4000) s

字符串,字典,数组写入本地文件和从本地文件读取

参考:http://blog.csdn.net/hakusan/article/details/39429393?utm_source=tuicool&utm_medium=referral 一.字符串,字典,数组存储到本地文件 字符串,数组,字典存储到本地文件过程一样,只是要存储的数据类型不同而已,这里以字符串存储到本地文件为例,如下:    NSString *content = @"将字符串存储到本地文件";    (1)获取Documents文件夹路径 参数:(1)指定

C#中定义数组--字符串及数组操作

一.一维: int[] numbers = new int[]{1,2,3,4,5,6}; //不定长 int[] numbers = new int[3]{1,2,3};//定长 二.多维 int[,] numbers = new int[,]{{1,2,3},{1,2,3}}; //不定长 int[,] numbers = new int[2,2]{{1,2},{1,2}}; //定长 三.例子 A:int[] mf1=new int[6]; //注意初始化数组的范围,或者指定初值; //包