PHP的正则表达式来从URL

PHP的正则表达式来从URL

问题描述:

获得ID我有这样PHP的正则表达式来从URL

http://localhost/MyProjects/client-contacts/?client=2 

在PHP中的正则表达式我想从URL中的ID的URL。在上面的url中,id是2.那么有人能告诉我如何从url中获取id吗?任何帮助和建议都将非常可观。由于

+0

'\ d + $'将适用于上述情况。 – 2014-09-29 06:42:49

+1

一个示例不算作规范... – 2014-09-29 06:46:29

使用正则表达式如下匹配,它存在只是后client=数量,

client=\K\d+ 

OR

http:\/\/.*?=\K\d+ 

OR

\d+$将针对上述输入工作。

好了,使用这个表达式:

(\d)$ 

如果它始终是最后一个,或使用?client=(\d)。在这两种情况下,第1组将包含您想要的标识。

.*\/.*?(\d+)$ 

试试看这个。抓取capture.see演示。

http://regex101.com/r/dN8sA5/3

不要使用正则表达式这一点。

您可以结合使用parse_str()parse_url()

$url = 'http://localhost/MyProjects/client-contacts/?client=2'; 
parse_str(parse_url($url, PHP_URL_QUERY), $arr); 
echo $arr['client']; 
+0

对于parse_url而不是正则表达式。 – Toto 2014-09-29 07:27:06

尝试这样

$url = 'http://localhost/MyProjects/client-contacts/?client=2'; 
preg_match('/client=([a-z0-9]+)$/i', $url, $id); 
echo $id[1]; 
exit; 

试试这个

$url = 'http://localhost/MyProjects/client-contacts/?client=2'; 
preg_match('/client=([a-z0-9]+)$/i', $url, $mc); 
echo $mc[1];  // here u get id as 2 

另一种方法可以是:

$url = 'http://www.example.com/MyProjects/client-contacts/?client=2'; 
$url_parts = parse_url($url); 
parse_str($url_parts['query'],$output); 

输出在给定的URL的所有参数:

阵列(大小= 1) '客户'=>字符串 '2'(长度= 1)

所以 - >$output['client']

另一个方法可以是...

$ var =“http://localhost.com/MyProjects/client-contacts/?client=2”;
$ id = explode(“=”,$ var);
echo $ id [1];