以下の文字列の最後の7文字を取得するにはどうすればよいですか?
例えば:
$dynamicstring = "2490slkj409slk5409els";
$newstring = some_function($dynamicstring);
echo "The new string is: " . $newstring;
どちらが表示されますか:
The new string is: 5409els
ええと..そのような?
$newstring = substr($dynamicstring, -7);
文字列を取得する前にチェックしたほうがよいでしょう。
$newstring = substr($dynamicstring, -7);
文字が 7 より大きい場合は、最後の 7 文字を返します。それ以外の場合は、指定された文字列を返します。
または、長さが 7 未満の場合にメッセージまたはエラーを返す必要がある場合は、これを行います
$newstring = (strlen($dynamicstring)>=7)?substr($dynamicstring, -7):"message";
ここには複数の正解があります。しかし、「安全な」バージョンのsubstr
.
文字列が「十分に長い」場合は と同じsubstr
ですが、文字列が短すぎる場合は ( を返す代わりに) 元の文字列を返しfalse
ます。
/** Unlike substr, handles case where $string is too short.
* @param $string
* @param $nChars - negative to return at end of string.
*/
function safe_substr($string, $nChars) {
if ($nChars == 0 || !isset($string))
return "";
if (strlen($string) <= abs($nChars))
// $string is too short (or exactly the desired length). Return the string.
return $string;
return substr($string, $nChars);
}
注: UTF-8 文字の場合は、 を定義し、上記をsafe_mb_substr
に置き換えます。と置き換えます。substr
mb_substr
strlen
mb_strlen