2014-06-19 90 views
0

在我的一個magento模板phtml文件中,我試圖包含一個單獨的php文件。 當我把它給我什麼也沒有輸出,當我使用需要,而不是我碰到下面的錯誤Magento - 在phtml模板文件中包含/需要php文件

Fatal error: require(): Failed opening required 'http://www.site.co.uk/dir/test.php' 
(include_path='/home/usr/public_html/app/code/local:/home/usr/public_html/app/code/community:/home/usr/public_html/app/code/core:/home/usr/public_html/lib:.:/usr/lib/php:/usr/local/lib/php') in /home/usr/public_html/app/design/frontend/theme/edits/template/review/product/view/list.phtml on line 30 

錯誤的第一行顯示了正確的URL路徑,當我去直接它的工作原理 - 它只是不喜歡從phtml模板頁面被包括/需要。

我試過在PHTML文件中的以下(使用Magento的的BaseURL,絕對路徑和相對路徑):

<?php 
$root = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_WEB); 
require/include ($root.'dir/test.php'); 
?> 

<?php 
require/include ('http://www.site.co.uk/dir/test.php'); 
?> 

<?php 
require/include ('../../../../../../../../../dir/test.php'); 
?> 
+0

我實在想不出任何理由,你爲什麼要這麼做。告訴我們你想實現的目標,也許(但很可能)會有一個更好的方式來獲取你的視圖/模板中的數據。 –

+0

我想將feefo評論整合到我的magento商店中。我知道他們做了一個擴展,但閱讀集成指南它看起來非常簡單,我只需要能夠包括並顯示「test.php」頁面,無論我想要評論顯示 –

回答

2

而不是Mage::getBaseUrl使用$root = Mage::getBaseDir();

+0

標記答案如果它解決了接受你的問題。 – MTM

+1

使用這個<?php require(Mage :: getBaseDir()。DS.'dir'.DS.'test.php');?> –

+0

請在上面顯示完整的示例 – TheBlackBenzKid

0

require('http://....')是要(如果它啓用)做一個全面的HTTP請求到指定的網址。由於它是一個URL,該網絡服務器將會執行php腳本EXECUTE並向您發送它的輸出。

如果您試圖實際加載該test.php的代碼,例如,原始未執行的PHP,那麼你不能使用http請求。遠程服務器不知道http請求實際上來自PHP並且來自include()。它只會盲目地運行該腳本併發送輸出。

您需要(比如說)將遠程文件重命名爲test.txt,以便網絡服務器按原樣發送它,然後該文本將作爲您的服務器上的PHP代碼執行。

而至於其他路徑去,如果你$root是一樣的東西:

/home/sites/example.com/html 

,則需要將要尋找

/home/sites/example.com/html/dir/test.php 

是否有內部dir子目錄什麼您的網站的$root是?

相關問題