0

.htaccess を使用すると、すべてのアドレスが index.php に書き換えられます

次に、Index.php はどのファイルをインクルードするかを決定する必要があります。現時点では、「/」で爆発し、foreach を実行してどのファイルを解決します。これにより、エラーが発生しています。

まず、URI を取得します。

1つのアドレスがある場合。localhost/next-page次に、その名前と拡張子 PHP のファイルをインクルードし、asおよびasinclude('content/'.$post.'.php');のグローバル変数を指定します。$table'PAGES'$post'next-page'

2 つある場合、1 つ目は $table、2 つ目は $post と見なされ、含めるファイルは次のようになります。include('content/single-'.$post.'.php');

どうやってこれを行うのですか?

4

1 に答える 1

0

最初に、URL の関連部分を分離する必要があります(この場合はおそらくパスですが、書き換えルールがなければわかりません)。それで:

$parts = explode('/', $path);
switch(count($parts)) {
    case 1:
        // set your globals (why are you using globals????)
        include('content/'.$parts[0].'.php');
        break;
    case 2:
        // do whatever you need with $parts[0] and $parts[1]
        break;
    // etc
}

いくつかのケースにかなりの類似性がある場合は、状況を正規化するための予備作業を行った後、あるケースから次のケースへのフォールスルーを許可できます。

    case 1:
        array_unshift($parts, 'PAGES'); // now $parts will have two elements
        // intentional fall-through
    case 2:
        // do whatever you need with $parts[0] and $parts[1]
        break;

最後に: 内の項目で行う必要があるものがたくさんある場合は、構文$partsを使用してコードを読みやすくするために名前を付けることができます。list

    case 2:
        list($table, $post) = $parts;
        // carry on as before but now $table == $parts[0] and $post == $parts[1]
于 2012-06-20T22:13:17.710 に答える