从后往前截取字符串 php函数

从后往前截取字符串 php函数,第1张

用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);

}

以自然的方式计算字符串长度

一个汉字计算一个长度,两个英文计算一个长度

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/12461060.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存