[英]preg_match - extracting string from url
我有一个这样的URL:
http://localhost/adminator/index.php?section = 1portal&tool = 2firmy和http://localhost/adminator/index.php?section = 1portal&tool = 2firmy&passedID = 26
并且我希望能够提取SECTION和TOOL参数。
我想出了这个:
preg_match('/(.*)(section=)(.*)(&tool=)(.*)/', $_SERVER['HTTP_REFERER'], $matchesarray);
echo $section = $matchesarray[3].'<br />';
echo $tool = $matchesarray[5];
但这仅适用于第一个URL,不适用于第二个URL,并且比我有:
preg_match('/(.*)(section=)(.*)(&tool=)(.*)(&)(.*)/', $_SERVER['HTTP_REFERER'], $matchesarray);
echo $section = $matchesarray[3].'<br />';
echo $tool = $matchesarray[5];
这仅适用于第二个网址,不适用于第一个。
如何在两种情况下都可以使用? 谢谢。
$url = 'http://localhost/adminator/index.php?section=1portal&tool=2firmy&passedID=26';
$url = parse_url($url, PHP_URL_QUERY);
parse_str($url, $output);
echo $output['section']; // 1portal
echo $output['tool']; // 2firmy
您不能只使用$ _GET ['section']和$ _GET ['tool']吗?
'section=(.+?).*?&tool=(.+?)'
应该起作用,然后检查组1和2的值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.