0

ナビゲーションを簡単にしたいので、

http://test.nl/admin/xxx.php?id=423

別のパラメータで同じページにリダイレクトしたい場合。できます

Header("Location: xxx.php$rest");

しかし、xxx.phpを動的にする方法はありますか?$ _SERVER [PHP_SELF]を試しましたが、ローカルホストでは機能しましたが、サーバーでは機能しませんでした。私は得る:http ://test.nl/test.nl/admin/xxx.php?id = 423

4

7 に答える 7

1

次のことを試してください。

$basename = basename($_SERVER['REQUEST_URI']);

これにより、拡張子を含む URL にファイルの名前が表示されます。もちろん、ファイル拡張子なしでファイルの名前を取得したい場合は、次を試してください。

$basename = str_replace(".php","",basename($_SERVER['REQUEST_URI']));

于 2012-11-02T17:36:53.083 に答える
1

URL 書き換えを使用する必要があります。Zend_RouterZend フレームワークのコンポーネントを見てみましょう。

そして、現在のファイル URL を取得する目的で:

<?php
function curPageURL() {
     $pageURL = 'http';
     if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
     $pageURL .= "://";
     if ($_SERVER["SERVER_PORT"] != "80") {
          $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
     } else {
          $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
     }
     return $pageURL;
}

echo curPageURL();

?>
于 2012-11-02T17:38:03.423 に答える
0

にリダイレクトするだけ/xxx.php?$restです。ディレクトリを離れない場合は、完全なアドレスは必要ありません。

于 2012-11-02T17:37:34.063 に答える
0

本番サイトでは機能しないが、ローカルでは機能するものはわかりません。

header("Location: {$_SERVER['REQUEST_URI']}?$rest");
于 2012-11-02T17:37:46.090 に答える
0

$_SERVER['SCRIPT_NAME'] 変数を使用して、現在のスクリプトのパス、つまり現在のファイルのフルパスとファイル名を取得できます

$_SERVER 変数の詳細については、以下の URL に記載されているドキュメントを参照してください。

http://in3.php.net/reserved.variables.server

于 2012-11-02T18:13:16.993 に答える
0

これらの場合に正規表現を使用するのが好きです。(または、このファイルに関連するファイルにアクセスするなど、他の答えがどれも適用されない場合。)

$foldername = preg_replace('/(.*)(\/admin\/.*)/', '$2', dirname(__FILE__));

$filename = preg_replace('/(.*)(\/admin\/.*)/', '$2', __FILE__);

\/admin\/2 番目のキャプチャ グループの先頭にあることに注意してください。$2preg replace にキャプチャ グループ全体への直接参照を与えます。したがって、admin は、キャプチャ グループが存在する Web ルートからの最初のフォルダーである必要があります。

于 2016-07-21T11:03:53.267 に答える
0

現在の URL は必要ありません。新しいクエリ文字列をリンクできます。

HTMLリンク付き:

<a href="?foo=bar">

またはphpリダイレクト:

Header("Location: ?foo=bar");
于 2014-07-01T07:11:23.513 に答える