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

时间:2013-03-06 14:19:25

标签: php

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

http://mywebsite.com/?source=text&keyword=site.com/random-text/dp/10505/

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

  $keywword = $_GET['keyword'];

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

3 个答案:

答案 0 :(得分:10)

您可以执行以下操作:

$keyword = $_GET['keyword'];
$foo     = explode('/', $keyword);
$id      = $foo[3];

DEMO: http://codepad.org/CcOcwDa6


我还建议使用regExp解决方案:

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

regExp解决方案的优点在于,如果您的keyword参数发生变化,只要您要查找的ID前面有dp/,这仍然可以正常工作。

DEMO: http://ideone.com/xqXU2b

答案 1 :(得分:5)

或者使用正则表达式:

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

答案 2 :(得分:1)

也许这会解决问题:

$keyword = $_GET['keyword'];
$id = preg_replace('#^(?:.+)?\/dp\/([0-9]+)\/(?:.+)?$#', '$1', $keyword);