3

ユーザーが私のサイトにアクセスし、毎回新しいURLに変数がありますが、エンディングは常に同じです/ dp / Random ID /

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

だから私が保存しようとしているのは/dp/ this id/です私は次のようなものを使うことを考えました:

  $keywword = $_GET['keyword'];

また、正規表現のようにランダムIDを抽出する方法については、/ dp /と/の間にあるものを見つけて、後で使用できるように$idなどの変数に保存することができます。

4

3 に答える 3

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

于 2013-03-06T14:23:18.180 に答える
5

または正規表現を使用する場合:

if (preg_match('/^.*\/dp\/([0-9]+)\/?$/i', $_GET['keyword'], $matches))
    var_dump($matches[1]);
于 2013-03-06T14:25:19.263 に答える
1

多分これはトリックをするでしょう:

$keyword = $_GET['keyword'];
$id = preg_replace('#^(?:.+)?\/dp\/([0-9]+)\/(?:.+)?$#', '$1', $keyword);
于 2013-03-06T14:28:22.790 に答える