Php 从url获取号码

Php 从url获取号码,php,regex,Php,Regex,我们有一个像 如何仅获取链接的ID部分?这个例子是593765 所以模式是http://site.com/people/{somenumber}-{anythingelse} 我不知道如何使用正则表达式获取它。您需要从 /shots/593765 brainzap?list=以下 这是页面的$\u服务器['REQUEST\u URI']。您需要从 /shots/593765 brainzap?list=以下 这是页面的$\u服务器['REQUEST\u URI']。我猜shorts是URL的“c

我们有一个像

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

所以模式是
http://site.com/people/{somenumber}-{anythingelse}


我不知道如何使用正则表达式获取它。

您需要从

/shots/593765 brainzap?list=以下


这是页面的
$\u服务器['REQUEST\u URI']

您需要从

/shots/593765 brainzap?list=以下


这是页面的
$\u服务器['REQUEST\u URI']

我猜shorts是URL的“catch”文件,{somenumber}-{anythinelse}是您获得的一个参数,我只需分解该参数

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

我猜shorts是URL的一个“catch”文件,{somenumber}-{anythinelse}是您获得的一个参数,我将分解该参数

list($iNumber, $sAnything) = explode("-", $sParam1);
正则表达式模式:

#/(\d+)-.+\??#
用法示例:

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

string(6) "593765"
正则表达式模式:

#/(\d+)-.+\??#
用法示例:

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

string(6) "593765"
使用正则表达式:

/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];
    }
?>

使用正则表达式:

/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];
    }
?>