php字符串截取函数
‘壹’ php字符截取
当汉字被截断时,根据编码规则他总是要把后边的其他字符拉过来一起作为汉字解释,这就是出现乱码的原因。而值为0x81到0xff与0x00组合始终都显示为“空”
根据这一特点,在substr的结果后面补上一个chr(0),就可以防止出现乱码了
先看段代码
复制代码
代码如下:
<?php
$len
=
15;
$str
=
"这个新闻或是文章的标题很长,需要只显示前面一些字,后面用...来代替";
echo
strlen($str)<=$len
?
$str
:
(substr($str,0,$len).chr(0)."...");
?>
chr(0)相关知识:
null是什么都没有,而chr(0)的值是0。表示成16进制是0x00,表示成二进制是00000000
虽然chr(0)不会显示出什么,但是他是一个字符。
‘贰’ php 字符串截取,大家都用什么算法实现
如果是用\\来划分的话,可以使用php函数explode
这个函数会按你指定的符号把字符串切割划分到数组里
举例
<?php
$str = "Hello world. It's a beautiful day.";
print_r (explode(" ",$str));
?>
Array
(
[0] => Hello
[1] => world.
[2] => It's
[3] => a
[4] => beautiful
[5] => day.
)
则可以按数组的方式来取每一段的值
那么按你的想法就可以用数组拼接成字符串
$str ="e:\\abc\\def\\hig\\kkk";
$array = explode("\\",$str);
如果是需要得到"e:\\"那么
$new_str = $array[0]."\\";
如果是需要得到"e:\\abc"那么
$new_str = $array[0].$array[1];
依次类推
‘叁’ php截取字符串函数
$str=implode("|",$arr);
echo $str;
input:
小明|小黑|小天|小白
‘肆’ php截取字符串
这个问题我回答了好几个了:
/* 截取一定长度的完整的中文字符 */
function cnsubstr($str,$strlen=10) {
if(empty($str)||!is_numeric($strlen)){
return false;
}
if(strlen($str)<=$strlen){
return $str;
}
//得到第$length个字符 并判断是否为非中文 若为非中文
//直接返回$length长的字符串
$last_word_needed=substr($str,$strlen-1,1);
if(!ord($last_word_needed)>128){
$needed_sub_sentence=substr($str,0,$strlen);
return $needed_sub_sentence;
}else{
for($i=0;$i<$strlen;$i++){
if(ord($str[$i])>128){
$i++;
}
}//end of for
$needed_sub_sentence=substr($str,0,$i);
return $needed_sub_sentence;
}
}
直接调用这个函数就可以了。
‘伍’ php如何提取中string字符串中的一部分
$out=array();
$str="abc&stat=100&remain=1589";
//第一种方式,使用parse_str函数
//(在字串是一个url参数字串的时候使用)
parse_str($str,$out);
var_mp($out['remain']);
//第二种方式,使用关键字串进行explode分隔
$out=explode('remain=',$str);
var_mp($out[1]);
//第三种方式,使用正则
$out=array();
preg_match('/remain=(d+)/i',$str,$out);
var_mp($out[1]);
//第四种方式,使用字符串截取substr及strrpos函数
$out=substr($str,strrpos($str,'remain=')+strlen('remain='),strlen($str));
var_mp($out);
‘陆’ 从后往前截取字符串 php函数
用strrchr这个PHP自带的
函数
,就是从
后面
取
字符串
。然后用substr把
逗号
去掉,就可以了。
$str=substr(strrchr($string,','),1);
‘柒’ PHP中如何截取从开头到某一位置的字符串
1、substr(源字符串,其实位置[,长度])-截取字符串返回部分字符串2、mb_substr(),使用方法和substr相同,不过要开启php.ini里面extension=php_mbstring.dll扩展,不用担心,一般的空间商都会开启这个扩展的。
你可以去后盾人平台看看,里面的东西不错
‘捌’ php怎么截取字符后面几个字符
$str1 = substr($str,5)截取后面5个字符。
1:$str1 = substr($str,5);这句是从第5个字符开始截取到最后strlen($str) 这句是获取字符串长度假设你要截取后面3个字符,那就这样写 $str1 = substr($str,(strlen($str)-3))。
2:只要判断字符串1与字符串2之前的一个stripos位置然后再使用substr开始截取就可以了。
3:PHP中的substr() 函数可以实现 substr() 函数返回字符串的一部分,substr(string,start,length)。
4:string 必需,规定要返回其中一部分的字符串,start 必需,规定在字符串的何处开始,正数 - 在字符串的指定位置开始 负数 - 在从字符串结尾的指定位置开始 0 - 在字符串中的第一个字符处开始 length 可选,规定要返回的字符串长度。默认是直到字符串的结尾,正数 - 从 start 参数所在的位置返回负数 - 从字符串末端返回。
‘玖’ php截取指定2个字符之间字符串的方法
本文实例讲述了php截取指定2个字符之间字符串的方法。分享给大家供大家参考。具体如下:
在php中只要判断字符串1与字符串2之前的一个stripos位置然后再使用substr开始截取就可以了,这里给大家介绍一个简单例子。
使用方法:
$keyword='查找(计组实验)'
$need=getNeedBetween($keyword,
'('
,
')'
);
运行该程序之后:
$need='计组实验';
下面就来完成上面用到的字符串截取函数getNeedBetween。该函数可实现简单的从字符串($kw)截取两个指定的字符($mark1,$mark2)之间字符串,失败返回0,成功返回截取的字符串。
<?php
function
getNeedBetween($kw1,$mark1,$mark2){
$kw=$kw1;
$kw='123′.$kw.'123′;
$st
=stripos($kw,$mark1);
$ed
=stripos($kw,$mark2);
if(($st==false||$ed==false)||$st>=$ed)
return
0;
$kw=substr($kw,($st+1),($ed-$st-1));
return
$kw;
}
?>
更多关于PHP字符串操作相关内容感兴趣的读者可查看本站专题:《php字符串(string)用法总结》
希望本文所述对大家的php程序设计有所帮助。
‘拾’ php截取字符串方法
可以使用substr或者mb_substr截取字符串