2014-07-11 12 views
0

將字符串的最後x個字節從字符串中取出並返回。除了像這樣的自定義函數之外,還有哪些經典的方法可以在PHP中實現?array_pop在PHP中的字符串?

function string_pop(&$str, $num) { 
    $pop = substr($str, - $num); 
    $str = substr($str, 0, strlen($str) - $num); 
    return $pop; 
} 
+0

[按給定的位置在兩個分開的字符串(可能重複http://stackoverflow.com/questions/3449348/separate -string-in-two-by-given-position) – halloei

回答

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

但是,這是否比你原來的功能更優雅是值得商榷的。

+0

用這些變量運行你的代碼:'$ str ='Lorem ipsum dolor sit amet。'; $ num = 20;'。 –

+0

啊是的,我的代碼只適用於$ num小於字符串長度的一半 – MajorCaiger

0

不知道它是最有效的,但這裏是一個班輪:

list($str, $pop) = preg_split('/(?<=.{'.(strlen($str) - $num).'})/', $str, 2);