2012-12-28 128 views
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)現在是一個空值,因爲我試圖讓理論起作用。我確定問題在於file_exists,但無法解決問題出在哪裏。

回答

2

in_array檢查數組,而不是密鑰,這是你想要的。改爲使用if (isset($pages[$page]) && ...)

根據您的環境,文件名可能區分大小寫。如果在代碼中使用小寫文件名,請將該文件創建爲home.php。

+0

非常感謝,我沒有意識到in_array沒有通過鍵搜索,但現在我知道了,我真的很高興能夠接近「親」:) – Hultin

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 />'; 
}