2011-04-07 12 views
2

私はこのようなURLを持っています。私はHTTPリファラーを使用してつかむPHPで前のページ名を取得します(URL全体ではありません)

http://www.mydomain.co.uk/blist.php?prodCodes=NC023-NC022-NC024-NCB33&customerID=NHFGR

。トラブルデフォルトが使用しているとして、私は唯一のリンク全体ではなく、URLから、すなわちblist.phpページ名を必要としている。

$_SERVER['HTTP_REFERER'] 

は、誰も私にURLの一部をつかむ方法についてのアイデアを与えることはできますか?

答えて

0

をこれが動作しているようですが、他のエレガントなURL機能があるかもしれません。

$url = 'http://www.mydomain.co.uk/blist.php?prodCodes=NC023-NC022-NC024-NCB33&customerID=NHFGR'; 

preg_match('/\/[a-z0-9]+.php/', $url, $match); 

$page = array_shift($match); 

echo $page; 
+0

なぜそう難しい方法? KISS – diEcho

+0

@diEchoまあ、... url関数をあまり使っていない。 –

+0

はうまくいきます!ありがとうございます – Andy

0
/[\w-]+.php/ 

この正規表現を使用すると、ファイル名のみを取得できます。

7

parse_url($_SERVER['HTTP_REFERER'],PHP_URL_PATH); 

注意してみてください:この変数は、モバイルデバイスには存在しません。

+0

任意のサブディレクトリまたはクエリ文字列名をファイルではなく、あなたを与えるだろう '返します/ blist.php'ではなくblist.phpですが、私が同意するのはおそらく申し訳ありませんが、URLにサブディレクトリがある場合http://www.mydomain.co.uk/mydir/blist.php?prodCodes=NC023-NC022-NC024 -NCB33&customerID =あなたはNHFGRですuldは 'mydir/blist.php'を得ることができません。 – Aba

0

$ _SERVER ['REQUEST_URI']を探しているだけで、リクエストされたページが表示されると思います。

あなたはここでの$ _SERVER変数をすべて確認することができます

http://php.net/manual/en/reserved.variables.server.php

+0

これは必須ではない上のすべての変数を私に与えます。入力いただきありがとうございます! – Andy

0
basename(parse_url($_SERVER['HTTP_REFERER'],PHP_URL_PATH) 

これは、このことを話すだけで技術的に

関連する問題