0

今日始めた小さな趣味のプロジェクトのページを含む、徹底的に考え抜かれた包括的なシステムを作ろうとしています。

これは現時点での私のコードです:

$page = get_uri(1);
if(!isset($page)){ $page = "Home"; }
$pages = array(
        "" => "home.php",
        "Home" => "home.php", 
        "Product" => "product.php",
        "category" => "category.php"
);
if(in_array($page, $pages) && file_exists(PAGE_DIR.$pages[$page])){
    include(PAGE_DIR.$pages[$page]);
} else {
    echo 'Uh oh. Four Oh Four, we failed to find the page you are looking for. :( <br />';
}

PAGE_DIR は= "/pages/"、ページ ファイルをホストする場所として定義されています。私はHome.php自分の理論を証明するためだけに作成しましget_uri(1)たが、理論を機能させようとしているため、今のところ null 値です。問題は のどこかにあると確信していますが、どこに問題があるのか​​特定file_existsできません。

4

3 に答える 3

2

in_arrayあなたが望むものであるキーではなく、配列値をチェックします。if (isset($pages[$page]) && ...)代わりに使用してください。

環境によっては、ファイル名で大文字と小文字が区別される場合があります。コードで小文字のファイル名を使用する場合は、ファイルを home.php として作成します。

于 2012-12-28T12:04:51.300 に答える
0

代わりにarray_key_existsを使用しますin_array()

コードは次のようになります。

$page = get_uri(1);
if(!isset($page)){ $page = "Home"; }
$pages = array(
        "" => "home.php",
        "Home" => "home.php", 
        "Product" => "product.php",
        "category" => "category.php"
);
if(array_key_exists($page, $pages) && file_exists(PAGE_DIR.$pages[$page])){
    include(PAGE_DIR.$pages[$page]);
} else {
    echo 'Uh oh. Four Oh Four, we failed to find the page you are looking for. :( <br />';
}
于 2012-12-28T12:15:21.127 に答える
0

条件は次のようになります。

if(array_key_exists($page, $pages)  etc

http://php.net/manual/en/function.array-key-exists.php

于 2012-12-28T12:10:15.993 に答える