我怎么能得到一个PHP字符串的最后7个字符?

我怎么去抓取下面的字符串的最后7个字符?

例如:

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

这将显示:

The new string is: 5409els
469807 次浏览

umh . .像这样吗?

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

第二个参数使用带负数的substr()

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

php文档:

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

如果start为负数,返回的字符串将从字符串末尾的第一个字符开始。

在获取字符串之前最好检查一下。

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

如果字符大于7,则返回最后7个字符,否则返回提供的字符串。

如果长度小于7,则需要返回消息或错误

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

substr documentation .

使用多字节字符代码更安全的结果,总是使用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 ) );

最后7个字符

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

$newstring: 5409els

对于前7个字符

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

$newstring: 2490slk

字符串的最后7个字符:

$rest = substr( "abcdefghijklmnop", -7); // returns "jklmnop"

这里有多个正确答案。但是,如果你想要一个“安全”的地方,你需要做什么并不明显。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。用mb_strlen替换strlen