2016-05-21 39 views
-1

我想實現一個網站上翻譯,我嘗試在http://we-love-php.blogspot.com.ar/2012/07/how-to-implement-i18n-without.html來自包含頁面的PHP返回方法?

找到了方法,我可以輕鬆地做到這一點,當請求的頁面是一個完整的頁面,但我不知道該怎麼辦時,請求的頁面由許多包含的文件組成。

這裏就是我的index.php樣子:

<?php 
include 'includes/header.php'; 
include 'includes/index.php'; 
include 'includes/footer.php'; 
?> 

而我已經試過是把類中的每個模板文件是這樣的:

<?php 

class example{ 
    public function now() { 
    return <<<FOOBAR 
     <!DOCTYPE html> 
     <html> 
     <head> 
     <meta charset="utf-8"> 
     <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
     <title>MY SITE's TITLE</title> 
     <meta name="keywords" content="SOME KEYWORDS" /> 
     <meta name="description" content="SOME DESCRIPTION"> 
     <meta name="author" content="MY NAME"> 
     ........... 
FOOBAR; 
} 
} 
?> 

這沒」因爲它試圖不止一次地創建這個類。然後我試着在頭上創建類,然後在頁腳後關閉它。它給我一個錯誤,就好像PHP試圖首先打開頁腳一樣,然後我重新排列了包含文件的順序,所以它包含了footer.php和header.php。不僅它出現亂七八糟,而且在底部有一條警告信息說:

Parse error: syntax error, unexpected end of file, expecting variable

我該如何解決這個問題?我喜歡這種翻譯我的網站的方法,但需要它在包含模板的同時工作。可能嗎?

在此先感謝!

回答

0

包含一個文件字面上告訴編譯器抓取一個文件的確切內容,並在腳本運行時將它們複製/粘貼到另一個文件中。這意味着如果你將一個類聲明放入多個被包含的文件中,你最終會得到該類的多個聲明。

使用include的全部意義在於讓您分解代碼並切除內部的冗餘。在任何時候,您都不應該在多個文件中擁有相同的類,函數或代碼段,因爲您會遇到一些非常奇怪的行爲和衝突。

選擇一個文件將你的類聲明放入並確保它不在任何其他文件中。

我希望這有助於!