urlからコントローラーとメソッドを取得しますか?

model-view-controller php routing
urlからコントローラーとメソッドを取得しますか?

[$ _SERVER [‘REQUEST_URI’] `のURLがあります

URLを教えてください

http://localhost/controller/method

私のようなものを試しました

explode('/',$_SERVER['REQUEST_URI'])

そしてそれは私たちに

array
  0 => string '' (length=0)
  1 => string 'controller' (length=10)
  2 => string 'method' (length=6)

コントローラまたはメソッドを取得する最良の方法は何ですか? または配列の0を削除しますか? (最初の配列)?

のようになります

$controller = 'controller';
$method = 'method';

上記の入力から。 多分リスト? list()を使用する手がかりはまだありません。

これまでに行ったことをここで編集します

    $this->url = str_replace(config('foldertoscript'), NULL, $_SERVER['REQUEST_URI']);
    $hello = explode('/',$this->url);var_dump($hello);
    array_shift($hello);
    list($controller,$method) = $hello;
    var_dump($hello,$controller);

クラスで

見てくれてありがとう。

アダム・ラマダン

  0  0


ベストアンサー

配列の最初の要素を削除するには、 `array_shift()`を使用できます。

`$ _SERVER [‘REQUEST_URI’]`は、「http://www.yoursite.com」のないURLを提供します。

あなたはこのようなものを使うことができます

お役に立てれば。

0


array_shiftを使用して、最初の配列項目を削除します。

例:

$your_array = array_shift($your_array);
$controller = $your_array[0];
$method = $your_array[1];

0


同じ問題については、url_rewritingを使用します。

^([a-zA-Z0-0 -_ \ /。] +)$ index.php?url = $ 1(これはコードからのコピーペーストではありませんが、アイデアは得られます)というルールがあります。 $ _URL = $ _REQUEST [“url”]と言う場合;

$ directive = explode( “/”、$ _ URL);

あなたは必要なものを手に入れるでしょう、パラメータに関してはmodule / method / id / 1 / data / 2と言えます

パラメータに注意する必要があります。GETメソッドを使用すると、

ナビゲーションのみ(使用する必要があります)。 また、誰もSQLを送信できないので、ものをより安全にします

getまたは任意の「スマート」ディレクティブによる注入。

0


タイトルとURLをコピーしました