注意;這個問題不要求或包括(這是變量),同時要求或包括從以下網址 我面臨着一個奇怪的錯誤如下:從url請求時變量出錯
require_once "http://".$_SERVER['HTTP_HOST'].'/engine/header.php';
這導致錯誤與變量
未定義變量
這枚:
require_once '/engine/header.php';
不會造成任何問題!
對不起,如果拼寫錯誤或寫不可理解的話。
注意;這個問題不要求或包括(這是變量),同時要求或包括從以下網址 我面臨着一個奇怪的錯誤如下:從url請求時變量出錯
require_once "http://".$_SERVER['HTTP_HOST'].'/engine/header.php';
這導致錯誤與變量
未定義變量
這枚:
require_once '/engine/header.php';
不會造成任何問題!
對不起,如果拼寫錯誤或寫不可理解的話。
你的答案位於here。
如果「URL包括包裝」在PHP中被激活,您可以指定文件使用的URL包括(通過HTTP或者其它支持的封裝 - 見支持的協議和封裝器協議的列表),而不是本地路徑名。如果目標服務器將目標文件解釋爲PHP代碼,則可以使用與HTTP GET一起使用的URL請求字符串將變量傳遞到包含的文件。這與嚴格意義上講並不是一樣的,包括文件並讓它繼承父文件的變量作用域;該腳本實際上正在遠程服務器上運行,結果被包含在本地腳本中。
這意味着,如果您包含一個URL,它將是一個獨立的PHP執行超出您當前的範圍。您需要通過$_GET
超全球通過變量。
如果include
/require
是絕對/相對文件路徑,您將能夠通過該範圍訪問變量。
正是!我怎麼忘記了!謝謝,aziz。 –
如果URL包含包裝已啓用,則只能包含URL,因此請檢查allow_url_include
在您的php配置中是否設置爲true。
您可以傳遞遠程文件的URL,但有一些限制。 請參閱http://php.net/manual/en/function.include.php – BryanT
其實,我沒有說問題是與包括或要求,拒絕答案。 –
@AhmedAlaa你不拒絕在這個網站上的答案,你要麼投票或下來+接受和回答。學習如何使用stackoverflow @ http://stackoverflow.com/tour –
當您通過網絡服務器訪問.php
文件時,網絡服務器執行該文件,並且發送給客戶端的響應是腳本的輸出,而不是腳本的源代碼。但require
希望從文件中讀取PHP源代碼,以便它可以在當前腳本的上下文中執行它。
因此,除非header.php
在遠程訪問時採取特殊措施輸出PHP源代碼,試圖使用URI請求它將無法正常工作。
爲什麼這不被幫助? –
'require *()'函數只是內部路徑。 –
嘗試打印或echo'ing $ _SERVER ['HTTP_HOST']以查看它是否解析爲您所期望的。 – BryanT