如何获取PHP字符串的最后7个字符?

Dav*_*ave 252 php string

我怎样才能抓住下面字符串的最后7个字符?

例如:

$dynamicstring = "2490slkj409slk5409els";
$newstring = some_function($dynamicstring);
echo "The new string is: " . $newstring;
Run Code Online (Sandbox Code Playgroud)

哪个会显示:

The new string is: 5409els
Run Code Online (Sandbox Code Playgroud)

Asa*_*aph 552

substr()与第二个参数的负数一起使用.

$newstring = substr($dynamicstring, -7);
Run Code Online (Sandbox Code Playgroud)

来自php文档:

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

如果start为负数,则返回的字符串将从字符串末尾的起始字符开始.

  • 但如果 $dynamicstring 少于 7 个字符,$newstring 将为空。(至少在 PHP 5.2.6 上) (2认同)
  • 您始终可以先使用 strlen 检查字符数是否大于或等于 7。 (2认同)
  • 从 PHP 8 开始,你可以使用 `str_ends_with(string $haystack, string $needle): bool` (2认同)

Vit*_*nov 71

嗯..那样的?

$newstring = substr($dynamicstring, -7);
Run Code Online (Sandbox Code Playgroud)

  • 你更快:) (6认同)

MER*_*ĞAN 14

使用多字节字符代码的更安全的结果,总是使用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') ;
Run Code Online (Sandbox Code Playgroud)

retrun TRUE;


Abd*_*nan 11

在获取字符串之前进行检查会更好.

$newstring = substr($dynamicstring, -7);
Run Code Online (Sandbox Code Playgroud)

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

  • 这可能是最好的答案,唯一能让它变得更好的是参考 php 手册。 (2认同)

小智 6

为简单起见,如果您不想发送消息,请尝试此

$new_string = substr( $dynamicstring, -min( strlen( $dynamicstring ), 7 ) );
Run Code Online (Sandbox Code Playgroud)


dev*_*per 5

最后 7 个字符

$newstring = substr($dynamicstring, -7);
Run Code Online (Sandbox Code Playgroud)

$新字符串:5409els

前 7 个字符

$newstring = substr($dynamicstring, 0, 7);
Run Code Online (Sandbox Code Playgroud)

$新字符串:2490slk