我有一些文件名看起来像这样的照片:
无论文件名是什么,它总是以:“ - NumberxNumber.Extension”结束
这将是: “-420x230.jpg”和“-210x370.png”
我希望能够始终检索最后两个数字。
我尝试使用“爆炸”功能,但可能有很多“ - ”和“。”文件名中的“x”表示无效。
我该怎么做?
谢谢。
答案 0 :(得分:1)
您可以使用strrchr查找" - "的最后一次出现。并从该点返回字符串的其余部分直到结束。从那里你应该能够轻松地提取你需要的东西。
答案 1 :(得分:1)
我认为你应该使用正则表达式来提取这两个数字。
<?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
答案 2 :(得分:1)
您可以使用explode
,因为您总是需要特定的一个,所以&#39;和&#39; x的数量并不重要。< / p>
$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'