PHP 문자열의 마지막 7자를 어떻게 얻을 수 있습니까?


278

아래 문자열의 마지막 7자를 잡는 방법은 무엇입니까?

예를 들면 다음과 같습니다.

$dynamicstring = "2490slkj409slk5409els";
$newstring = some_function($dynamicstring);
echo "The new string is: " . $newstring;

다음과 같이 표시됩니다.

The new string is: 5409els


8
dup으로 확인질문 은이 질문과 전혀 같지 않습니다.
Asaph

13
이 주제에 대해 Google을 검색 할 때 여기로 간 것은 아이러니합니다. 한숨
LeonardChallis

5
@Asaph 나는 이것을 스택 영향이라고 부른다. 사람들은 가까운 질문 아래에 새로운 것을 시도, 그들이 할 것입니다 제일 먼저는 DUP로 플래그는 단순히 신고를 위해입니다
트위그을

5
매뉴얼을 살펴 보는 것보다 문제를 google로 처리하고 답변에서 코드 줄을 찾는 것이 훨씬 쉽고 빠릅니다.
Engin Yapici

답변:


597

substr()두 번째 인수에는 음수를 사용하십시오 .

$newstring = substr($dynamicstring, -7);

로부터 의 PHP 문서 :

string substr ( string $string , int $start [, int $length ] )

start가 음수이면 반환 된 문자열은 문자열의 끝부터 시작 문자에서 시작합니다.


그러나 $ dynamicstring이 7 자 미만인 경우 $ newstring은 비어 있습니다. (최소 PHP 5.2.6 이상)
Scott Chu

문자 수가 7 이상인지 확인하기 위해 항상 strlen을 먼저 점검 할 수 있습니다.
PBwebD


14

멀티 바이트 문자 코드 작업에 대한보다 안전한 결과는 항상 substr 대신 mb_substr을 사용합니다. utf-8의 예 :

$str = 'Ne zaman seni düşünsem';
echo substr( $str, -7 ) . ' <strong>is not equal to</strong> ' .
  mb_substr( $str, -7, null, 'UTF-8') ;

11

문자열을 얻기 전에 확인하는 것이 좋습니다.

$newstring = substr($dynamicstring, -7);

문자가 7보다 크면 7은 마지막 7자를 반환하고 그렇지 않으면 제공된 문자열을 반환합니다.

또는 길이가 7보다 작 으면 메시지 또는 오류를 반환 해야하는 경우이 작업을 수행하십시오.

$newstring = (strlen($dynamicstring)>7)?substr($dynamicstring, -7):"message";

substr 문서


메시지를 다시 보내려면 else 부분이 필요하다고 생각합니다. 잘못된 데이터가 입력되었거나 ..
Neri

1
이것은 아마도 가장 좋은 대답 일 것입니다. PHP 매뉴얼을 참조하는 것이 더 나을 수도 있습니다.
Mark Carpenter Jr

2

간단하게 메시지를 보내지 않으려면 다음을 시도하십시오.

$new_string = substr( $dynamicstring, -min( strlen( $dynamicstring ), 7 ) );

0

마지막 7 자

$newstring = substr($dynamicstring, -7);

$ newstring : 5409els

처음 7 자

$newstring = substr($dynamicstring, 0, 7);

$ newstring : 2490slk


-1

문자열의 마지막 7 자 :

$ rest = substr ( "abcdefghijklmnop", -7); // "jklmnop"을 반환

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.