My $_SERVER['REQUEST_URI']
is something like /advt/upload/siteid/1. I need to retreive that '1' from the specified path. How can I do preg match or anything else?
Thanks!
最後のパス セグメントが必要ですか? 簡単!
$lastPathSegment = basename($_SERVER['REQUEST_URI']);
rtrim($_SERVER['REQUEST_URI'], '/')
パスに末尾のスラッシュがないことを確認するために使用することができます。
他にも多くの方法があります。想定$uri = rtrim($_SERVER['REQUEST_URI'], '/')
...
$lastPathSegment = end(explode("/", $uri));
$lastPathSegment = ltrim(strrchr($uri, "/"), "/");
$lastPathSegment = substr($uri, 1 + strrpos($uri, "/"));
$lastPathSegment = preg_replace('/^.+\//', '', $uri);
...などなど。
最後のセグメントが必要な場合:
$endSegment = basename($_SERVER['REQUEST_URI']);
それ以外の場合、それが最後ではないが、値のインデックスがわかっている場合
$pieces = explode("/", $_SERVER['REQUEST_URI']);
$selectedSegment = $pieces[3];
つまり、分割機能を使用できます
list($sec1,$sect2,$sect3,$sect4) = explode("/", $_SERVER['REQUEST_URI']);
$sect4 は番号、または単純な配列です
$uri = explode("/", $_SERVER['REQUEST_URI']);
$num = $uri[3];
また、正規表現を見たいと思うかもしれません
preg_match('/(?P<sect1>\w+)\(?P<sec2>\w+)\(?P<sect3>\w+)\ (?P<digit>\d+)/', $_SERVER['REQUEST_URI'], $matches);
print_r($matches);
preg マッチの詳細については、このリンクを参照してくださいpreg_match