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

时间:2012-05-10 21:19:46

标签: php string

我如何抓住下面字符串的最后7个字符?

例如:

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

将显示:

The new string is: 5409els

8 个答案:

答案 0 :(得分:504)

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

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

来自php docs

  

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

     

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

答案 1 :(得分:70)

嗯......那样的吗?

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

答案 2 :(得分:11)

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

retrun TRUE;

答案 3 :(得分:8)

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

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

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

如果长度小于7

,则需要返回消息或错误
$newstring = (strlen($dynamicstring)>7)?substr($dynamicstring, -7):"message";

substr documentation

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

最后7个字符

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

$ newstring:5409els

前7个字符

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

$ newstring:2490slk

答案 6 :(得分:0)

字符串的最后7个字符:

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

答案 7 :(得分:0)

这里有多个正确答案。但是如果您想要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