首页 开发编程 正文

php怎么找字符串

05$ascLen=strlen($str);06$ind=0;$ind<=$len)return$str;$str);$smslen){03$str_tmp=$content;11$str_tmp=substr($content;...

php怎么找字符串,PHP中英文混合排版中处理字符串常用的函数?

对一段文字按照字数进行分割,因为文字中可能是中英文混合的,而php函数strlen只能计算出字串的字节数,于是自己实现了几个函数,分享下。 例1,计算字符总长度。 01 <?php 02 function ccStrLen($str) #计算中英文混合<a href="/"target="_blank" class="infotextkey">字符串</a>的长度 03 { 04 $ccLen=0; 05 $ascLen=strlen($str); 06 $ind=0; 07 $hasCC=ereg(”[xA1-xFE]“,$str); #判断是否有汉字 08 $hasAsc=ereg(”[x01-xA0]“,$str); #判断是否有ASCII字符 09 if($hasCC && !$hasAsc) #只有汉字的情况 10 return strlen($str)/2; 11 if(!$hasCC && $hasAsc) #只有Ascii字符的情况 12 return strlen($str); 13 for($ind=0;$ind<$ascLen;$ind++) 14 { 15 if(ord(substr($str,$ind,1))>0xa0) 16 { 17 $ccLen++; 18 $ind++; 19 } 20 else 21 { 22 $ccLen++; 23 } 24 } 25 return $ccLen; 26 } 27 ?> 例2,从左侧截取字符串。 01 <?php 02 function ccStrLeft($str,$len) #从左边截取中英文混合字符串 03 { 04 $ascLen=strlen($str); if($ascLen<=$len) return $str; 05 $hasCC=ereg(”[xA1-xFE]“,$str); #同上 06 $hasAsc=ereg(”[x01-xA0]“,$str); 07 if(!$hasCC) return substr($str,0,$len); 08 if(!$hasAsc) 09 if($len & 0×01) #如果长度是奇数 10 return substr($str,0,$len+$len-2); 11 else 12 return substr($str,0,$len+$len); 13 $cind=0;$flag=0;$reallen=0;//实际取字节长 14 while($cind<$ascLen && $reallen<$len) 15 { //by

www.jbxue.com

16 if(ord(substr($str,$cind,1))<0xA1){ //如果该字节为英文 则加一 17 $cind++; 18 }else{//否则 加2个字节 19 $cind+=2; 20 } 21 $reallen++; 22 } 23 return substr($str,0,$cind); 24 } 25 ?> 例3,把给定文字,按切割数量存入数组(适合短篇文字,长文章可没分隔一部分就直接处理一次) view sourceprint? 01 <?php 02 function SplitContent($content,$smslen){ 03 $str_tmp=$content; 04 $arr_cont=array(); 05 $len_tmp=0; 06 $i=0;//分割绝对位置 07 while (strlen($str_tmp)>0){ 08 $str_tmp=ccStrLeft($str_tmp,$smslen); 09 array_push($arr_cont,$str_tmp); 10 $i+=strlen($str_tmp); 11 $str_tmp=substr($content,$i,strlen($content)); 12 } 13 return $arr_cont; 14 } //by

www.jbxue.com

15 ?> 测试: 1 <?php 2 $str=’a计算中英文混合1234字符串的长度abcd’; 3 echo $str.’的长度为:’.ccStrLen($str); 4 echo ‘<br>’; 5 $smslen=3;//截取长度 6 print_r(SplitContent($str,$smslen)); 7 ?>

php中怎样实现sql字段包含于字符串?

谢谢邀请!

sql语法支持楼主所说的功能:输入一个字符串,匹配字符串中的某些字段,模糊查询,关于模糊匹配的格式,楼主可以随便查询下SQL语法都能找到,select * from tbl_user where staus like '%头痛2日%'; 式如下:select 字段 from 表 where 某字段 like 条件,其中关于条件,sql提供了以下几种匹配模式:

(1)、%:表示零个或多个字符。

可以匹配任意类型和任意长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。比如:select * from tbl_user where staus like '%头痛2日%'; 将会把tbl_user这张表里面,列名status中含有“头痛2日”的记录全部查询出来。

(2)、_:表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度。

比如select * from ftbl_user where status like __头通2日; 只能找到类似“某某头通2日”这样的症状记录。

(3)、[]:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配的对象为他们中的任一个。比如select * from tbl_user where status like '[头眼耳]痛';将找出“头痛”“眼痛”“的记录。

(4)、[^]:表示不在括号所列之内的单个字符。其取之和[]相同,但它所要求匹配对象为指定字符以外的任一个字符。比如select * from tbl_user where status like'[^头眼耳]痛'; 将找出不是头痛,眼痛, 耳痛之外的心痛。

注意事项:查询内容包含通配由于通配符的缘故,导致查询特殊字符“%”、“_”、“[”的语句无法正常实现,把特殊字符用“[]”括起来便可以正常查询。

php如何取出字符串中的每一个字符?

在php中,可以使用substr()函数从指定的字符串中取一部分出来。

本文转载自互联网,如有侵权,联系删除