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


278

我将如何获取下面字符串的最后7个字符?

例如:

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

将显示:

The new string is: 5409els


8
确定为重复项问题与问题根本不完全相同。
阿萨夫(Asaph)2012年

13
具有讽刺意味的是,我在Google搜索该主题时被带到这里。
LeonardChallis

5
@Asaph我称此为堆栈影响。人们尝试采取任何措施来结束问题,他们要做的第一件事就是将其标记为dup,只是为了对其进行标记
twigg 2014年

5
与通过手册相比,用谷歌搜索问题并在答案中找到一行代码要容易得多,而且速度也更快。
Engin Yapici'2

Answers:


597

substr()第二个参数使用负数。

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

PHP文档

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

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


但是,如果$ dynamicstring少于7个字符,则$ newstring将为空。(至少在PHP 5.2.6上有效)
Scott Chu

你总是可以做第一strlen的检查,看看是否字符数大于或等于7
PBwebD


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') ;

11

最好在获取字符串之前进行检查。

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

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

或者如果您需要返回消息或长度小于7则返回错误,请执行此操作

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

substr文档


我认为需要其他部分来回发信息。例如输入无效数据或..
Neri

1
这可能是最好的答案,可能会使它变得更好的唯一事情是对php手册的引用。
马克·卡彭特(Marc Carpenter Jr),

2

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

$new_string = substr( $dynamicstring, -min( strlen( $dynamicstring ), 7 ) );

0

最后7个字符

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

$ newstring:5409els

前7个字符

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

$ newstring:2490slk


-1

字符串的最后7个字符:

$ rest = substr(“ abcdefghijklmnop”,-7); //返回“ jklmnop”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.