2012-11-19 152 views
0

我試圖使包括頁面的功能。功能包括頁面

其實在開始階段我用很長的代碼,爲所有頁面檢查工作:

if (isset($_GET]['p']) && $_GET['p']=='something') {include 'something.php'}; 

現在我有600多頁工作,這個代碼是太長了,我想簡化它。

有時候我必須是題爲等使用他們的網頁,例如家庭將對應accueil.php等

所以我做了我在其中列出的所有異常的數組:

這樣的:

$paramListepages = array(
    'corbeille' => array(
     'libelle'  => 'corbeille', 
     'page'  => 'php/trash.php' 
    ), 
    'nouveaumessage' => array(
     'libelle'  => 'nouveaumessage', 
     'page'  => 'php/envoyer.php' 
    ), 

等等

在這陣我有大約20頁。

現在我已經盡力了,包括網頁,使這裏創建一個函數是我的代碼:

function getPage($var) 
{ 
    if (isset($var)) { 
     $key = array_search($var, $paramListepages); 
     if ($key == false()) { 
      include('php/'.$var.'.php');  
     } else { 

     } 
    } 
} 

我不明白爲什麼第一部分不起作用。

我首先檢查,如果VAR的確存在數組中,如果不是我包括與VAR的頁面。

我還是不知道該怎麼辦的第二部分,但現在第一個不能正常工作。

我沒有消息的錯誤,即使在我的ubunto我激活了所有錯誤的顯示。

index.php主頁我調用該函數getPage($_GET['p'])

任何形式的幫助將非常感激。

+1

'假()'是不是一個函數。將其更改爲'if($ key == false){'。另外,'include'也不是函數**,它是一種語言結構;所以不應該使用括號。讓它包含'/path/to/file.php';' –

+0

感謝這部分它工作正常,我已經改變了,最後一個麻煩是如何從第一個數組獲得正確的頁面值? –

+1

'function false(){return false; }'。這是一個笑話。 – StasGrin

回答

1

我建議你的陣列中直接訪問項:

function getPage($var) { 
    if (empty($var)) 
     // no page specified => default page 
     inlude('index.php') 
    elseif (array_key_exists($var,$paramListepages)) 
     // page found => include it! 
     include (sprintf('php/%s.php', $paramListepages[$var]['page'])); 
    else 
     // page not found => default page 
     inlude ('index.php') 
}