
用strrchr这个PHP自带的
,就是从
后面
取
。然后用substr把
逗号
去掉,就可以了。
$str=substr(strrchr($string,','),1);
<
$m='asdadavaaacsjdskddadjaslkdadjfsdaaslkhdasdqqwaduweapduasdjassadjdkadlkvdadfdm';//母字符串
$s='ad';//子字符串 可以为多个字符
$n=4;//第n次
$o='';
$r=explode($s,$m);
foreach($r as $k=>$v){
if($k==$n)break;
$o=$v"<font color=red>"$s"</font>";
}
echo $o;
/////////也可以写成函数的形式
//font color 是方便你辨别 可以去掉 直接写成$o=$v$s;
echo SplitString("asdsadjs1kadja1skd454546158jasdadjas1kd","1","3");//三个参数分别是 母字符串 分割字符 取第几个前面的字符串
function SplitString($m,$s,$n){
$r=explode($s,$m);
foreach($r as $k=>$v){
if($k==$n)break;
$o=$v"<font color=red>"$s"</font>";
}
return $o;
}
>
truncate 不是php本身的函数 ,是smarty定义的字符串截取函数,只能告诉你,不行自己写个函数吧;给你一个做参考
function str_natcut($string, $length, $dot = '')
{
if (!$string || !$length) return $string;
$string = htmlspecialchars_decode($string);
$string = preg_replace('/\s{2,}/', ' ', $string);
$maxlen = min($length, mb_strlen($string, 'UTF-8'));
$chars = preg_split('/([\xF0-\xF7][\x80-\xBF]{3}|[\xE0-\xEF][\x80-\xBF]{2}|[\xC0-\xDF][\x80-\xBF]|[\x00-\x7F])/m', $string, $maxlen + 1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
$index = 0;
$length = 0;
$total = count($chars);
$result = array();
while ($length < $maxlen && $index < $total)
{
$char = $chars[$index];
if (preg_match('/[\xE0-\xEF][\x80-\xBF]{2}/', $char))
{
if (($maxlen - $length) < 1) break;
$length += 1;
}
else
{
$length += 05;
}
$result[] = $char;
$index++;
}
$result = implode('', $result);
unset($chars, $char);
return htmlspecialchars($result) ($result == $string '' : $dot);
}
以自然的方式计算字符串长度
一个汉字计算一个长度,两个英文计算一个长度
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)