从字符串中弹出字符串的最后x个字节并返回它。除了像这样的自定义函数之外,用PHP做任何经典的方法吗?
function string_pop(&$str, $num) {
$pop = substr($str, - $num);
$str = substr($str, 0, strlen($str) - $num);
return $pop;
}
答案 0 :(得分:1)
也许像
list($str, $pop) = str_split($str, strlen($str) - $num);
编辑:正如Gergo Erdosi所指出的,只有当$num
小于$str
长度的一半时,此代码才有效。以下情况将起作用。
$arr = str_split($str, strlen($str) - $num);
$pop = array_pop($arr);
$str = implode('', $arr);
但是,这是否比你原来的功能更优雅是值得商榷的。
答案 1 :(得分:0)
不确定它是最有效的,但这是一个单线:
list($str, $pop) = preg_split('/(?<=.{'.(strlen($str) - $num).'})/', $str, 2);