2012-03-14 101 views
0

我想爲我的網站上的常用導航鏈接創建一個函數。我想我可以創建一個PHP函數並調用它,但我不知道如何設置它。如何包含函數

這是我有:

<div class="left_side"> 
    <ul> 
     <li><a href="page1.php">First Page</a></li> 
     <li><a href="page2.php">Second Page</a></li> 
     <li><a href="page3.php">Third Page</a></li> 
    </ul> 
</div> 
<div class="right_side"> 
    <!-- contents of this page --> 
</div> 

由於在left_side的鏈接是爲每一頁相同,如何創建一個PHP函數,以便它可以從多個地方調用?

即,我想它看起來像:

HTML:

<?php left_side() ?> 
<div class="right_side"> 
    <!-- content of this page --> 
</div> 
php: 
function left_side() 
{ 
echo 
<div class="left_side"> 
    echo 
    <ul> 
     echo   
     <li><a href="page1.php">First Page</a></li> 
     echo   
     <li><a href="page2.php">Second Page</a></li> 
     echo   
     <li><a href="page3.php">Third Page</a></li> 
     echo  
    </ul> 
    echo 
</div> 
} 
Most of the server code is in php. So it would have to look something like this: 
<?php 
    session_start() 
    require_once("php.php"); // the above php code with the left_side() function 
    function showPage() 
    { 
     include("html.html"); // the above html code 
    } 
    ?> 

感謝。

+0

謝謝大家!我忘了指定我在php函數中需要它,因爲除了顯示鏈接之外,我還有更多的事情要做到左側。 – Raymond 2012-03-14 17:10:39

回答

0

把你的函數在一個名爲function.php像這樣的文件:

<?php 
    function left_side() 
    { 
     echo <div class="left_side">   
     echo <ul> 

     echo  <li><a href="page1.php">First Page</a></li> 
     echo  <li><a href="page2.php">Second Page</a></li> 
     echo  <li><a href="page3.php">Third Page</a></li> 
     echo </ul> 
     echo </div> 
    } 
?> 

然後在每一頁上,在頂部的地方這樣做:

<?php require_once('/path/to/function.php'); ?> 

可以再用

<?php left_side() ?> 

使用它一般情況下,需要()優於include(),因爲如果文件丟失,您會希望它引發錯誤(它會破壞您的網站而不具有HTML輸出)。此外,require_once()比require()更好,因爲該函數只需要由Web服務器讀取一次。如果您開始包含其他文件頁面中的標準頁眉和頁腳也調用function.php,那麼require_once()將不會在這些後續頁面上運行,從而導致性能略有下降。

話雖如此,如果你只是輸出HTML,你不一定需要一個函數包裝器。只需在function.php中使用echo語句(您也可以直接使用HTML而不使用echo),並使用include()在每次調用時輸出這些內容。

+0

謝謝!我想我在錯誤的地方有require_once,所以它永遠不會調用我的left_side()函數。 – Raymond 2012-03-14 17:07:17

+0

那麼,你會說包括不會拋出錯誤或什麼? – 2012-03-15 13:59:28

+0

是的,對於丟失的文件include()會拋出警告,但不會停止執行,而require()會拋出錯誤並停止執行。你的意思是我需要編輯才能讓它更清晰一點? – 2012-03-15 14:02:44

1

您可以爲這樣的功能template.php文件中,包括在它上面的佈局中的所有代碼:

<?php include('template.php') ?> 
Some HTML 
<?php left_side() ?> 
0

把你left_side東西爲HTML在一個文件中,如left_side.html。然後,當你想包括它時,把<?php include("left_side.html"); ?>。如果需要,您還可以在導航中包含PHP,然後解析並運行。如果將永遠不會被需要,您還可以使用<?php readfile("left_side.html"); ?>

1

使用include

把左側的內容就像一個文件:

//leftside.php 

<div class="left_side"> 
    <ul> 
    ... 
    </ul> 
</div> 

,然後你有本條:

<?php include_once('leftside.php'); ?> 

1

你不想創建功能爲此。

請看下面

1)創建以下頁面left.menu.inc.php將包含菜單項

<ul> 

      <li><a href="page1.php">First Page</a></li> 
      <li><a href="page2.php">Second Page</a></li> 
      <li><a href="page3.php">Third Page</a></li> 
</ul> 

2)後,主界面的樣子

<div class="left_side">   
     <?php include_once "left.menu.inc.php";?> 
    </div> 

    <div class="right_side"> 

     <!-- contents of this page --> 
    </div> 
0

製作一個頭文件,比如header.html。在該文件中:

<div class="left_side"> 
    <ul> 
     <li><a href="page1.php">First Page</a></li> 
    </ul> 
</div> 

在輸出頁面,你需要設置文件擴展PHP(或做一些更高級的,以使服務器知道它需要執行PHP),並且包括:

<?PHP include('header.html'); ?> 
<div class="right_side"> 
    <!-- content of this page --> 
</div> 

另請注意:雖然PHP中最後一行直接執行?>在行尾不需要分號,PHP中的所有其他行都可以。爲了保持一致性,您應該考慮在所有PHP行的末尾放置分號。

相關問題