2024-09-10 14:09:16 | 我爱编程网
1.substr(源字符串,其实位置[,长度])-截取字符串返回部分字符串
<?php$str="phpddt.com";echosubstr($str,2);//pddt.comechosubstr($str,2,3);//pddechosubstr($str,-2);//om负数从结尾开始取?>但是当你截取中文字符串的时候很容易出现乱码,因为一个汉字是两个字节,而一个英文字母是一个字节。解决办法如下.
2.mb_substr(),使用方法和substr相同,不过要开启php.ini里面extension=php_mbstring.dll扩展,不用担心,一般的空间商都会开启这个扩展的。
<?phpechomb_substr("php点点通",1,3,"UTF-8");//hp点?>代码如下:
substr(string,start,length)
其中start的参数
正数-在字符串的指定位置开始
负数-在从字符串结尾的指定位置开始
0-在字符串中的第一个字符处开始 我爱编程网
strstr()函数搜索一个字符串在另一个字符串中的第一次出现。
该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回false。
strstr('abc@jb51.net','@',TRUE);//参数设定true,返回查找值@之前的首部,abc
strstr('abc@jb51.net','@');//默认返回查找值@之后的尾部,@jb51.net
网上也有很多中文字符串截取教程,实现起来比较复杂,感觉还是用php自带的函数实现起来比较好。整理的网络资料(php代码)如下:
(1)截取GB2312中文字符串
<?php//截取GB2312中文字符串functionmysubstr($str,$start,$len){$tmpstr="";$strlen=$start+$len;for($i=0;$i<$strlen;$i++){if(ord(substr($str,$i,1))>0xa0){$tmpstr.=substr($str,$i,2);$i++;}else$tmpstr.=substr($str,$i,1);}return$tmpstr;}echomysubstr("php点点通",1,5);//php点?>(2)截取utf8编码的多字节字符串
<?php//截取utf8字符串functionutf8Substr($str,$from,$len){returnpreg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s','$1',$str);}echoutf8Substr("php点点通",1,5);//hp点点通?>(3)支持utf-8、gb2312都支持的汉字截取函数
<?php//同时支持utf-8、gb2312都支持的汉字截取函数,默认编码是utf-8functioncut_str($string,$sublen,$start=0,$code='UTF-8'){if($code=='UTF-8'){$pa="/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/";preg_match_all($pa,$string,$t_string);if(count($t_string[0])-$start>$sublen)returnjoin('',array_slice($t_string[0],$start,$sublen))."...";returnjoin('',array_slice($t_string[0],$start,$sublen));}else{$start=$start*2;$sublen=$sublen*2;$strlen=strlen($string);$tmpstr='';for($i=0;$i<$strlen;$i++){if($i>=$start&&$i<($start+$sublen)){if(ord(substr($string,$i,1))>129){$tmpstr.=substr($string,$i,2);}else{$tmpstr.=substr($string,$i,1);}}if(ord(substr($string,$i,1))>129)$i++;}if(strlen($tmpstr)<$strlen)$tmpstr.="...";return$tmpstr;}}$str="php点点通提供原创php教程";echocut_str($str,8,0);//php点点通提供...?>我爱编程网(https://www.52biancheng.com)小编还为大家带来在php中有没有类似split的函数啊?的相关内容。
$str = "a,b,c,d,e";php分割数组函数split和explode的区别一句话总结这三个分割函数的explode用字符串分割,split和preg_split用正则分割.效率方面:explode最快,其次preg_split最后split.split()函数用正则表达式来把字符串拆分并返回数组,如果出错则返回false。用法:split(string$pattern,string$string
php字符串的截取1楼的代码有点问题截取中文会出现问题比如刚好是9个字母1个汉字你截取10位的话就会出现乱码所以截取含中文字符串时要用mb_substr代替substrfor($i=0;$i<strlen($str);$i=$i+10){$string=mb_substr($str,$i,10);echo$string."<br>";}php获取字符串
php字符串处理函数(php字符串函数)php如何执行字符串中的函数mixedcall_user_func??(callable$callback?[,mixed$parameter?[,mixed$...?]])把第一个参数作为回调函数(callback),并且将其余的参数作为回调函数的参数。error_reporting(E_ALL);fun
php函数基础问题1、int,bool是指函数的返回值类型。2、第一个string是参数类型,第二个string是参数名。3、[,int..]表示可选参数,不输入的话则使用默认值,逗号在前边是跟前边的参数隔开。。。php时间函数问题使用date("Y-m-dH:i:s",time())date将服务器的时间格式化。语法:stringdate(stringform
php的日期函数的问题date函数返回各种格式的日期值,date(格式,[日期]),第一个参数是格式,第二个参数是日期,第二个参数可以省略(当前日期),例如date('l')就得到当前星期的完整名称,参数是小写的字母L,结果是Sunday到Saturday。date函数详细的格式字符如下:格式字串可以识别以下format参数的字符串format字符说明返回值例子
PHP中array_reverse函数的一个小问题保留原来的下标。$b = array("Cat","Dog","Horse");print_r(array_reverse($b));// 数字索引的数组,需设置第二个参数保留原索引print_r(array_reverse($b, true));//Array ( [0] => Horse [1] => Dog [2] =
如何利用PHP来截取一段中文字符串而不出现乱码/*功能:截取全角和半角混合的字符串以避免乱码参数: $str_cut 需要截断的字符串 $length 允许字符串显示的最大长度*/function substr_cut($str_cut,$length = 30){ if (strlen($str_cut) >; $length){ for($i=0; $i < $leng
php中用递归函数计算出16的4次方在PHP中,可以使用递归函数来计算16的4次方。以下是一个使用递归函数的示例代码:phpfunctionpower($base,$exponent){if($exponent==0){return1;}else{return$base*power($base,$exponent-1);}}$result=power(1
2025-02-01 20:24:39
2024-01-05 14:11:24
2025-02-12 03:21:37
2025-02-10 15:19:48
2025-01-28 17:58:32
2024-11-22 05:08:01