將字符串的最後x個字節從字符串中取出並返回。除了像這樣的自定義函數之外,還有哪些經典的方法可以在PHP中實現?array_pop在PHP中的字符串?
function string_pop(&$str, $num) {
$pop = substr($str, - $num);
$str = substr($str, 0, strlen($str) - $num);
return $pop;
}
將字符串的最後x個字節從字符串中取出並返回。除了像這樣的自定義函數之外,還有哪些經典的方法可以在PHP中實現?array_pop在PHP中的字符串?
function string_pop(&$str, $num) {
$pop = substr($str, - $num);
$str = substr($str, 0, strlen($str) - $num);
return $pop;
}
也許像
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);
但是,這是否比你原來的功能更優雅是值得商榷的。
用這些變量運行你的代碼:'$ str ='Lorem ipsum dolor sit amet。'; $ num = 20;'。 –
啊是的,我的代碼只適用於$ num小於字符串長度的一半 – MajorCaiger
不知道它是最有效的,但這裏是一個班輪:
list($str, $pop) = preg_split('/(?<=.{'.(strlen($str) - $num).'})/', $str, 2);
[按給定的位置在兩個分開的字符串(可能重複http://stackoverflow.com/questions/3449348/separate -string-in-two-by-given-position) – halloei