0

我想使用 php preg_match 从 url 中提取 id。

例如:$string = 'http://www.mysite.com/profile.php?id=1111';我需要输出为'1111'

使用 preg_match。

我试过这个:

if(preg_match('/(?:https?):\/\/www\.mysite\.com\/profile\.php\?id\=[0-9]/', $string, $match) > 0){

    $id =  $match[1];
}

但是我得到的输出是' profile.php'

有人能帮助我吗?

4

3 回答 3

2

为什么不parse_url使用parse_str

$url_component = parse_url($string);
parse_str($url_component['query'], $output);
echo $output['id'];
于 2012-08-09T06:34:49.707 回答
0
$pattern = '/(?:https?):\/\/www\.mysite\.com\/profile\.php\?id\=([0-9]+)/';

这应该可以正常工作!但是用parse_url做到这一点

于 2012-08-09T06:34:54.893 回答
0

如果 url 中只有一个参数,您可以使用 explode 函数轻松完成此操作,例如

$string = 'http://www.mysite.com/profile.php?id=1111';
$ex=explode('=',$string);
$id=$ex[1];

您也可以使用 php 的 parse_url 函数。

希望这有帮助,

于 2012-08-09T06:35:07.807 回答