我该如何获取下面字符串的最后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";
>7
替换为>=7
。 - ToolmakerSteve使用多字节字符编码时,使用mb_substr而不是substr可以获得更安全的结果。下面是utf-8的示例:
更安全的多字节字符编码处理,请使用 mb_substr 而不是 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') ;
为了方便起见,如果您不想发送消息,请尝试这个方法
$new_string = substr( $dynamicstring, -min( strlen( $dynamicstring ), 7 ) );
$newstring = substr($dynamicstring, -7);
$newstring : 5409els
对前7个字符进行操作
$newstring = substr($dynamicstring, 0, 7);
$newstring : 2490slk
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
。
字符串的后7个字符:
$rest = substr( "abcdefghijklmnop", -7); // returns "jklmnop"
str_ends_with(string $haystack, string $needle): bool
。 - Flo Bayer