Regex to get value of a numeric URL parameter?

女生的网名这么多〃 提交于 2019-11-29 05:16:09

PHP has built-in functions for this. Use parse_url() and parse_str() together.

Pieced together from php.net:

$url = 'http://www.example.com/page.php?ProdId=2683322&xpage=2';

// Parse the url into an array
$url_parts = parse_url($url);

// Parse the query portion of the url into an assoc. array
parse_str($url_parts['query'], $path_parts);

echo $path_parts['ProdId']; // 2683322
echo $path_parts['xpage']; // 2

Try this regular expression:

^http://www\.example\.com/page\.php\?ProdId=(\d+)
Funky Dude

Can't you use $_GET['ProdId']?

Jet

Try this function:

/https?:\/{2}(?:w{3}\.)?[-.\w][^\.]+\.{2,}\/ProdId=\d+\&xpage=\d+/
/^[^#?]*\?(?:[^#]*&)?ProdId=(\d+)(?:[#&]|$)/

And the same in English:

  1. Match anything except ? or # (this will get us to the beginning of the query string or the hash part, whichever comes first)
  2. Match the ? (if there was only a hash part, this will disqualify the match)
  3. Optionally match anything (but not a #, in case there's a hash part) followed by &
  4. Match your key value pair putting the value in a capturing subpattern
  5. Match either the next param's &, the # or the end of the string.
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!