PHP:获取最后两个指定字符之间的字符串

PHP: get string between the last two designated characters

我有一些图片,文件名是这样的:

无论文件名是什么,它总是以:" -NumberxNumber.Extension "

这里是: “-420x230.jpg”和“-210x370.png”

我想要的是能够始终检索最后两个数字。

我尝试使用 "explode" 函数,但可能会有很多“-”和“.”。和文件名中的 "x" 它没有帮助。

我该怎么做?

谢谢。

您可以使用 strrchr 查找最后一次出现的“-”,并使用 return 从该点到结尾的其余字符串。从那里你应该能够轻松地提取你需要的东西。

我认为你应该使用正则表达式来提取这 2 个数字。

<?php
$reg = '/(\d*)x(\d*).\D*/i';
$string = 'my-picture_001.79-420x230.jpg';

preg_match($reg, $string, $matches);

//print the result
echo "<pre>";
print_r($matches);
echo "</pre>";
?>

/D代表非数字字符
/d代表数字字符
/D* 表示零个或多个非数字字符
我们要提取的字符将位于 ()...

我经常使用这个网站来玩正则表达式:
http://rubular.com/
这是 php
中关于正则表达式的教程 http://www.phpro.org/tutorials/Introduction-to-PHP-Regex.html

您可以使用 explode,'-' 和 'x' 的数量无关紧要,因为您总是需要一个特定的。

$string = 'my-picture_001.79-420x230.jpg';

$last_half = end(explode('-', $string));     // '420x230.jpg'
$last_sec = reset(explode('.',$last_half));  // '420x230'
$values = explode('x', $last_sec);

echo $values[0] // '420'
echo $values[1] // '230'