从网址获取号码

时间:2012-06-07 09:18:53

标签: php regex

我们有一个类似http://site.com/people/593765-barack-obama?sort=popular

的网址

如何仅获取链接的ID部分?这个例子是593765。

因此模式为http://site.com/people/{somenumber}-{anythingelse}

我不确定如何使用正则表达式来获取它。

5 个答案:

答案 0 :(得分:3)

preg_match('#/(\d+)-#', $url, $m);
echo $m[1]; // 593765

答案 1 :(得分:1)

我猜short是URL的'catch'文件,{somenumber} - {anythinelse}是你获得的参数,我只是爆炸参数。

list($iNumber, $sAnything) = explode("-", $sParam1);

答案 2 :(得分:1)

正则表达式:

#/(\d+)-.+\??#

用法示例:

preg_match('#/(\d+)-.+\??#', 'http://site.com/people/593765-barack-obama?sort=popular', $matches);
var_dump($matches[1]);

输出:

string(6) "593765"

答案 3 :(得分:1)

使用正则表达式:

/people\/([0-9]+)\-/

<?php
    //$pattern = $_SERVER['REQUEST_URI'];
    $pattern = "http://site.com/people/593765-barack-obama?sort=popular";
    preg_match('/people\/([0-9]+)\-/', $pattern, $match);
    if (isset($match[1])) {
        echo "The number is: " . $match[1];
    }
?>

答案 4 :(得分:0)

您需要从

过滤它

/shots/593765-brainzap?list=following

这是页面的$_SERVER['REQUEST_URI']