2014-07-11 1 views
0

문자열의 마지막 x 바이트를 문자열에서 팝하여 반환합니다. PHP와 같은 커스텀 함수 이외의 모든 고전적인 방법?PHP의 string에 대한 array_pop?

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

같은 : 게르 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); 
관련 문제