0

私はこのような2つのリンクを持っています:
http ://www.site.com/report/4fbb14
http://www.site.com/4fbb14

だから$_SERVER['REQUEST_URI']彼らにとっては次のようなものです:

/ report / 4fbb14
/ 4fbb14

私はただ得る必要があります4fbb14

利用した

$r_url = str_replace("/","",$_SERVER['REQUEST_URI']);

しかし、両方のリンクで機能する必要があります。このようなものは受け入れられますか?

$r_url = str_replace("(/ or report)","",$_SERVER['REQUEST_URI']);
4

4 に答える 4

4

はるかに簡単になります

$r_url = end(explode('/', $_SERVER['REQUEST_URI']));

これにより、最後のスラッシュの後に何があったかがわかります

于 2013-03-24T00:52:45.240 に答える
2

正規表現の使用

文字列の最後で、。の直後にある値を探します/

if ( preg_match("/\/(\d+)$/", "http://www.site.com/report/4fbb14", $result) )
{
  $value = $result[1];
}

使用parse_urlとシンプルexplode

$values = parse_url("http://www.site.com/report/4fbb14");
$parts_of_the_url = explode("/", $values['path']);
$result = end($parts_of_the_url);
于 2013-03-24T00:55:36.013 に答える
2

php NoObを除いて、これまでのすべての回答は機能しますが、すべてのリンクが同じ形式になる場合は、次のようにすることができます。

$r_url = $_SERVER['REQUEST_URI'];
$r_url = str_replace("report","",$r_url);
$r_url = str_replace("/","",$r_url);
echo $r_url;
于 2013-03-24T01:03:23.773 に答える
1

あなたが取得したい場合4fbb14

<?php 

$ex = explode('/', 'http://www.site.com/4fbb14');
echo $ex['3'];
于 2013-03-24T00:57:32.563 に答える