提取$ _GET变量的特定部分或URL本身

Bor*_*aka 3 php

得到这个东西的用户来到我的网站,他们每次都有新的网址变量,但结尾总是相同/ dp /随机ID /

http://mywebsite.com/?source=text&keyword=site.com/random-text/dp/10505/
Run Code Online (Sandbox Code Playgroud)

所以我想保存的是/ dp /这个id /我想过使用类似的东西:

  $keywword = $_GET['keyword'];
Run Code Online (Sandbox Code Playgroud)

还有一些如何在正则表达式中提取随机ID你可以找到/ dp /和/之间的内容并保存到像$ id这样的变量,以便以后能够使用它.

Aym*_*adi 10

你可以这样做:

$keyword = $_GET['keyword'];
$foo     = explode('/', $keyword);
$id      = $foo[3];
Run Code Online (Sandbox Code Playgroud)

DEMO: http://codepad.org/CcOcwDa6


我还打算建议一个regExp解决方案:

preg_match('/dp\/([^\/]+)\//', $url, $matches);
$id = $matchs[1];
Run Code Online (Sandbox Code Playgroud)

关于regExp解决方案的好处是,如果您的keyword参数发生了变化,只要您要查找的ID在前面,它仍然可以正常工作dp/.

DEMO: http://ideone.com/xqXU2b


vca*_*lli 5

或者使用正则表达式:

if (preg_match('/^.*\/dp\/([0-9]+)\/?$/i', $_GET['keyword'], $matches))
    var_dump($matches[1]);
Run Code Online (Sandbox Code Playgroud)

  • @MarkVoidale在这种情况下,你可以用`\ w +`替换`[0-9] +` (3认同)