2011-03-31 56 views
1

有沒有一種方法可以針對PHP僅包含某些頁面?我必須使用PHP includes才能爲特定頁面調用JavaScript和CSS文件;沒有針對包含的頁面將不會看到JavaScript或CSS,否則它們會中斷。謝謝PHP僅包含一些頁面

編輯:
謝謝大家。我已經改變了方法。我決定只檢查文件名並將JavaScript和CSS文件鏈接到目標頁面,而不是選擇性地使用包含。一位同事指出,使用$_SERVER['REQUEST_URI']這將提供.php文件的名稱,並允許有針對性地提供JavaScript和CSS文件。這是我迄今爲止設置的方式:

$files-array{file1.php, file2.php, file3.php} 
if (array_search($_SERVER['REQUEST_URI'], $files-array) > 0) { 
link to css files 
link to js files 
} 

回答

2

如何定義頁面?

if($_GET['something'] == "somepage"){ 
include 'javascript.js'; 
} 
0

你就不能使用

if (condition) include 'something'; 

1

你可以做很多事情,但是主要的邏輯是:

if condition 
    include file 

所以,你可以這樣做:

if($_SERVER["SCRIPT_NAME"] == "folder/script.php"){ 

    include 'page.js'; 

} 

if($_GET['variable'] == "correct"){ 
    // include 
} 

if($_POST['formvariable'] == "correct"){ 
    // include 
} 

等等。

1

我建議做你自己的圖書館。所以你不要把代碼搞亂。你可以做一個簡單的目錄,這樣的事情:

$pages_includes = array(
    'index' => array(
     'script1.js', 
     'script2.js', 
     'style1.css', 
     'style2.css', 
    ), 
    'contact' => array(
     'script1.js', 
     'style1.css', 
     'style2.css', 
    ) 
); 

然後,在你的「庫」你可以做這樣的事情

function myImport($page_name){ 
    $includes = $pages_includes[$page_name]; 
    foreach(includes as $k=>$v){ 
     include_once($v); 
    } 
} 

而且,在你的頁面,你可以這樣做:

myImport($_SERVER["SCRIPT_NAME"]); 

這些是簡單的方法來組織您的代碼,並使其模塊化。如果您必須更改任何導入,您可以在目錄($ pages_includes)中執行此操作,而不是在代碼中執行。即使你可以從XML文件中讀取你的目錄。

可擴展性和可擴展性的簡單教訓;)