PHP: 字符串中指定字符的最后n个字符?

PHP: Last n characters to a specified character in a string?

我想从字符串中获取最后一个“-”字符之后的最后 n 个字符。喜欢:

$string = "something-123";
$substring = 123;
$string2 = "something-253672-something-21";
$substring2 = 21;

这些字符只能是数字。 我怎样才能用 PHP 做到这一点? (抱歉英语不好)

您可以分解字符串并解析结果数组的最后一个元素:

$splitted = explode("-", $string);
$numbers = end($splitted);

if (is_numeric($numbers)) {
    echo "Yay!";
} else {
    echo "Nay!";
}

您可以使用此功能来解决您的问题。

 return is_numeric(array_pop(explode('-', $string)));

应该一行完成...

 substr($string, strrpos($string, '-') + 1);

而且总有一个正则表达式:

preg_match('/.*-([0-9]+)$/',$yourstring,$match);
echo $match[1];

以下代码将根据您的查询工作:

$mystring ="something-253672-something-21";
// Get position of last '-' character.
$pos = strrpos($mystring, "-");
// Get number after '-' character.
$last_number = substr($mystring,$pos+1);
echo $last_number;

试试下面的一行:

$substring = (int)end((explode("-", $string)));

它将始终为数字(0 如果数字无效)。