PHP - 如何在字符串中最后一次出现字符后获得特定数量的字符

时间:2015-10-18 19:39:54

标签: php

这是字符串http://www.sportsdirect.com/adidas-pure-360-mens-golf-shoes-283042?colcode=28304201

如何在-的最后一次出现后获得前六个字符?

提前致谢!

4 个答案:

答案 0 :(得分:1)

有很多方法可以在这个上给猫皮肤。

Here's one of them

$url = 'http://www.sportsdirect.com/adidas-pure-360-mens-golf-shoes-283042?colcode=28304201';
preg_match('/-(\d+)\?/', $url, $result);
var_dump($result[1]); // string(6) "283042" 

模式表示"匹配短划线和问号之间的至少一个连续数字"。

答案 1 :(得分:1)

使用strrpos查找-的最后一次出现,然后使用substr

抓取其后的6个字符

实施例

$string = "http://www.sportsdirect.com/adidas-pure-360-mens-golf-shoes-283042?colcode=28304201";

echo substr(
    $string,
    strrpos($string, "-") + 1,
    6
);

输出:

283042

答案 2 :(得分:0)

$link = "http://www.sportsdirect.com/adidas-pure-360-mens-golf-shoes-283042?colcode=28304201";
if(strrpos($link, '-')){  // check if "-" is exist
 echo substr($link,strrpos($link, '-')+1,6);
}

strrpos - 查找最后一个字符串在另一个字符串中的位置

答案 3 :(得分:0)

尝试这可能会有所帮助

   <?php
$str = "http://www.sportsdirect.com/adidas-pure-360-mens-golf-shoes-283042?colcode=28304201";
$at = strtok($str, "?");
if ($at) {
    $sixltr = substr($at, -6);
    echo $sixltr;
}
?>