2012-05-10 4 views
168

下の文字列の最後の7文字を取得するにはどうすればよいですか?例えばPHP文字列の最後の7文字はどうすれば入手できますか?

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

どちらでしょうディスプレイ:そのような

The new string is: 5409els 
+9

http://php.net/manual/en/function.substr.php – PeeHaa

+2

[あなたが尋ねる前に検索がありますか?](https://www.google.com/search?btnG=1&pws=0&q=php+ +最後の+文字+ +文字列+安全=アクティブ) –

+0

私は良い10分の検索を過ごしました。私はこれが思ったよりも簡単だったことを知っていました! – Dave

答えて

397

第二引数に負の数でsubstr()を使用してください。 php docsから

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

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

startが負の場合、返される文字列は、文字列の最後からstart番目の文字から開始されます。

+0

$ dynamicstringが7文字未満の場合、$ newstringは空になります。 (少なくともPHP 5.2.6で) –

+0

文字数が7以上であるかどうかをstrlenで調べることができます。 – testing123

60

umh ..?

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

あなたはもっと速くなりました:) – milkovsky

3

文字列を取得する前に確認することをお勧めします。

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

文字が7より大きい場合、最後の7文字が返されます。それ以外の場合は、指定された文字列を返します。

+0

メッセージを返すにはelse部分が必要です。 .. – Neri

+0

他の部分は、文字が7よりも小さいことを意味するので、 –

+1

を返してください。これはおそらく最良の答えです。 –

7

マルチバイト文字コードを使用するとより安全に結果が得られますが、常に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') ; 

retrun TRUE;

関連する問題