2012-12-08 68 views
0

我正試圖在頁面中包含一個文件。該文件位於名爲phpThumb的文件夾中,該文件夾位於我的wordpress主題目錄中。
這是我想包括文件」PHP require_once奇怪的不工作?

<?php require_once(get_bloginfo('template_url')."/phpThumb/phpThumb.config.php"); ?>

出於某種原因,這是行不通的。
我沒有檢查和get_bloginfo()回報一個值,不呼應一值。
我三重檢查的有效性的代碼和它的所有IMO罰款...

怎麼可能是錯的?

P.S;它使用$_SERVER['DOCUMENT_ROOT'],但它的輸出取決於當前頁面(糾正我,如果我錯了),所以它對我來說效率不高。

+1

'$ _SERVER ['DOCUMENT_ROOT']'不依賴於當前頁面/文件。 –

+4

要求會期望一個目錄不是一個網址 – Popnoodles

+1

它幾乎肯定是PHP文件的路徑。嘗試使用'getcwd()'而不是'get_bloginfo('template_url')' –

回答

6

require_once預計文件在目錄不是網址。

用Wordpress函數get_template_directory()替換get_bloginfo('template_url')

<?php require_once(get_template_directory()."/phpThumb/phpThumb.config.php"); ?> 
+0

謝謝!就是這樣!我完全忘了檢查函數實際接收的參數。 :D – Asaf

1

你試圖要求,不包括。如果你想包括這樣做: <?php include("page"); ?>

+1

謝謝,但這不是問題。 'include'和'require'函數除了它們的錯誤處理外都是一樣的:http://www.w3schools.com/php/php_includes.asp – Asaf

+1

它們不一樣,但在這種情況下它是一個配置文件'require_once '是正確的使用。 FYI w3schools提供不良信息。 http://w3fools.com/ – Popnoodles

+0

哦!我實際上使用了他們很多......僅僅因爲我認爲他們與W3C有關...似乎是完全的BS ......很高興知道!比從未好。再次感謝@popnoodles:P – Asaf

1

$_SERVER['DOCUMENT_ROOT']是不依賴於當前頁面/文件。它會爲您提供到您的網站根文件夾的系統文件路徑。 require_once需要一個系統文件路徑。所以如果你的phpThumb.config.php坐在你的web根目錄下的/dir1/dir2/phpThumb/phpThumb.config.php。你會這樣做

require_once($_SERVER["DOCUMENT_ROOT"] . '/dir1/dir2/phpThumb/phpThumb.config.php'); 

檢查get_bloginfo('template_url')."/phpThumb/phpThumb.config.php"的輸出,並將其與上述內容進行比較。