一、PHP中英文混合排版中处理字符串常用的函数?
对一段文字按照字数进行分割,因为文字中可能是中英文混合的,而php函数strlen只能计算出字串的字节数,于是自己实现了几个函数,分享下。 例1,计算字符总长度。 01 <?php 02 function ccStrLen($str) #计算中英文混合<atarget="_blank" >字符串</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 } //bywww.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中元字符定义?
共有两种不同的元字符:一种是可以在模式中方括号外任何地方使用的,另外一种 是需要在方括号内使用的。
三、php转义字符的作用?
主要是防止一些符号歧义造成数据错误。 如你要保存一个词don't。如果你的sql语句用单引号引的话就变成'don't',这时t'就没有意义了,会认为是一个错误语句。另一个原因是为了防止sql注入攻击用的
四、php字符串的定义?
在PHP中,字符串是指一串字符或文本,它可以使用单引号或双引号进行定义,也可以使用Heredoc或Nowdoc语法进行定义。字符串可以包含任意字符,包括字母、数字、符号、空格等,也可以包含变量、函数、表达式等。使用不同的引号定义字符串可以影响其中变量和转义字符的解析方式。字符串是PHP中最常用的数据类型之一,在Web开发中经常用于处理表单数据、数据库查询结果、输出HTML等。
五、php混合数组解释?
PHP混合数组是一种在同一个数组中可以存储不同类型数据的数据结构,包括数字、字符串、布尔值、对象以及其他数组等。使用混合数组可以方便地组织和访问多种数据类型,提高代码的灵活性和可扩展性。在PHP中,可以使用array()函数或者简写[]来创建混合数组,并可以使用foreach循环或者下标访问等方式对数组进行操作。需要注意的是,在使用混合数组时,需要注意数据类型的匹配和转换,以避免出现不必要的错误。
六、php汉字的字符长度是多少?
文件保存的是UTF-8吧? 保存成GB2312就是2个字节了
七、php转义字符 \t怎么用啊?
php中\t是转义字符,表示:横向跳到下一制表位置。示例代码如下:<?phpfor($i=1;$i<9;$i++){echo"\t".$i; }?>//---------------------输出结果------------------------------// 1 2 3 4 5 6 7 8
八、abs是PHP字符串函数吗?
是的。abs是PHP字符串函数。
abs函数用于返回指定参数的绝对值,如果参数是float类型,则返回的类型也是float,否则返回Integer类型。
返回参数的绝对值,如果参数是float,则返回的类型也是float,如果参数是int,返回类型是int,如果参数是string字符串,则返回0。
九、php字符串太长怎么加密缩短?
可以通过以下加密方法加密:
分别是md5、base64_encode()、urlencode() ,相对应的解密函数:base64_decode() 、urldecode(),这样太长的字符串缩短到32或64位
十、php字符 截取
PHP字符截取是在PHP开发中经常用到的功能。当我们处理字符串时,有时候需要从字符串中截取出特定的部分,以满足我们的需求。在本文中,我们将详细介绍如何使用PHP字符截取函数来处理字符串。
1. 使用substr函数进行截取
PHP提供了一个内置函数substr,它可以用来截取字符串的一部分。这个函数接受三个参数:源字符串、开始位置和截取长度。
<?php
$string = "你好,世界!";
$substring = substr($string, 0, 3);
echo $substring; // 输出:你好
?>
上述例子中,我们将源字符串"$string"的开始位置为0,截取长度为3的部分赋值给变量"$substring",然后输出"$substring"。
2. 使用mb_substr函数进行截取中文字符
在对中文字符串进行截取时,我们需要使用mb_substr函数而不是substr函数,因为substr函数在处理中文字符时可能会出现乱码的情况。mb_substr函数是PHP的一个扩展函数,它可以支持多字节字符集。
<?php
$string = "你好,世界!";
$substring = mb_substr($string, 0, 3, 'utf-8');
echo $substring; // 输出:你好
?>
在mb_substr函数中,第四个参数是指定字符编码。在上面的例子中,我们使用了utf-8作为字符编码。
3. 截取字符串的末尾字符
有时候我们需要从字符串的末尾开始截取一段字符。PHP提供了一个函数substr_replace,它可以方便地实现这个功能。
<?php
$string = "Hello, World!";
$substring = substr_replace($string, "Earth!", -7);
echo $substring; // 输出:Hello, Earth!
?>
在上述例子中,我们使用substr_replace函数将字符串"$string"的末尾7个字符替换为"Earth!"。
4. 使用正则表达式截取字符串
除了上述函数之外,我们还可以使用正则表达式来截取字符串。
<?php
$string = "Hello, World!";
preg_match('/Hello, (.+)/', $string, $matches);
echo $matches[1]; // 输出:World!
?>
上述例子中,我们使用preg_match函数来匹配字符串"$string"中以"Hello, "开头的部分,并使用括号将匹配结果保存到$matches数组中。然后,我们可以通过$matches[1]来访问匹配到的字符串。
5. 对截取的字符串进行处理
在实际应用中,我们可能需要对截取的字符串进行进一步处理。比如,我们可以将截取的字符串转换为大写、小写或者进行其他操作。
<?php
$string = "Hello, World!";
$substring = substr($string, 0, 5);
$uppercase = strtoupper($substring);
echo $uppercase; // 输出:HELLO
?>
在上述例子中,我们先使用substr函数截取字符串"$string"的前五个字符,然后使用strtoupper函数将截取的字符串转换为大写。
总结
通过本文,我们详细介绍了如何使用PHP字符截取函数来处理字符串。我们学习了substr函数和mb_substr函数的用法,还了解了使用正则表达式截取字符串的方法。另外,我们还探讨了对截取的字符串进行进一步处理的技巧。希望本文对您在PHP开发中的字符截取问题有所帮助。
- 相关评论
- 我要评论
-