2013-10-31 79 views
1

我正在製作一個網站,其中我希望左側的一列是鏈接列表。這個填充了鏈接的列將位於整個網站的每個網頁上,並且會更頻繁地更新鏈接。因此,我需要解決的問題是如何使其每當我想要添加一個新鏈接到我的網站的「鏈接列表」時,我都不必手動將它添加到每個網頁的HTML代碼中。基本PHP:將數組從一個PHP文件傳遞到另一個

我知道一些Java,但我完全不熟悉PHP。我做了一些研究,發現了「包含」聲明,以及一些有用的東西,但我不知道這是否是一個好主意 - 因爲如果它的錯誤代碼/錯誤風格,可以我對此有所看法?它是不錯的代碼?或者我是否以錯誤的方式去做?

包含數組整個PHP文件,標題爲「videos_array.php」:

<?php 
    $videoArr = array(
    "<li><a href=\"http://www.youtube.com/arbitraryvideo1\">Video 1</a></li>", 
    "<li><a href=\"http://www.youtube.com/arbitraryvideo2\">Video 2</a></li>", 
    "<li><a href=\"http://www.youtube.com/arbitraryvideo3\">Video 3</a></li>"); 
?> 

而且網頁,我希望將這些值插入到這個樣子的:

<html> 
    <head> 
     <!--All the necessary tags--> 
    </head> 
    <body> 
     <!--More Tags--> 
     <div id="link_column"> 
      <?php include 'videos_array.php'; 
       foreach($videoArr as $val){ 
        echo $val; 
       } 

      ?> 
     </div> 
    </body> 
</html> 

當使用include聲明引用一個php文件時,它是我應該使用的相對路徑,還是絕對的和虛擬的引用也可以?

預先感謝您的輸入

+0

不帶任何列表可能會出現對齊問題。在inculde之前添加ui/ol –

回答

1

$videoArr只能使用一次,因此沒有必要在其他php file使用它你可以echo宣佈它像,

<?php 
    $videoArr = array(
     "<li><a href=\"http://www.youtube.com/arbitraryvideo1\">Video 1</a></li>", 
     "<li><a href=\"http://www.youtube.com/arbitraryvideo2\">Video 2</a></li>", 
     "<li><a href=\"http://www.youtube.com/arbitraryvideo3\">Video 3</a></li>" 
    ); 
    foreach($videoArr as $val){ 
      echo $val; 
    } 
?> 

即使經過不需要創建array如果不使用它只是echo它作爲string like,

<?php 
    echo "<li><a href=\"http://www.youtube.com/arbitraryvideo1\">Video 1</a></li>", 
     "<li><a href=\"http://www.youtube.com/arbitraryvideo2\">Video 2</a></li>", 
     "<li><a href=\"http://www.youtube.com/arbitraryvideo3\">Video 3</a></li>"; 
?> 

而在你index page這樣使用它,

<div id="link_column"> 
    <?php include 'videos_array.php';?> 
</div> 
1

當引用與包括聲明PHP文件,難道是我應該使用相對路徑,或者是絕對的和虛擬的引用確定爲好?

你在做什麼是好的但是有幾點要警惕周圍PHP的包括路徑

包含路徑是PHP堆棧中的服務器文件系統路徑,當解析includerequire語句(以及可能還有其他一些內容)中提供的路徑時,PHP將用作基本目錄。基本包含路徑通常包括.(或當前工作目錄)。這被解析爲包含執行的第一個(父)PHP腳本的目錄。這可以吸引人們,一旦你去了幾個包括深。

我發現通常最有效的方法是用__DIR__常數前綴包含路徑。這解析爲當前腳本的父目錄。

例如,假設你有以下目錄結構

foo.php 
bar.php 
dir/baz.php 

要包含來自foo.phpbar.php,您可以使用

include __DIR__ . '/bar.php'; 

要包括bar.phpdir/baz.php

include __DIR__ . '/../bar.php'; 

你CA n還可以操作include_path配置。例如(在foo.php

// add "dir" to the top of the include path stack 
set_include_path(implode(PATH_SEPARATOR, [ 
    realpath(__DIR__ . '/dir'), 
    get_include_path()])); 

// now include baz.php 
include 'baz.php'; // this works because we added "dir" to the include path 
相關問題