我知道這個問題已經在SO中討論過了,但我還是無法找到解決方案。如何包含相對於當前文件而不是父文件的文件?
我有assign.php:
$a=1;
require.php:
require "assign.php";
和echo.php:
require "require.php"
echo $a;
,其輸出1 問題是,當我想從不同位置使用「require.php」,而不需要重複文件。例如,
/folder/echo.php:
require "../require.php";
echo $a;
將無法正常工作,因爲require.php正試圖要求/folder/assign.php不存在。
試圖在require.php使用一個完整的URL:
require "http://site.com/assign.php";
將無法工作或者是因爲代碼不被包括在內,但編譯,因爲$ a不全球,它是undefiend 。
有人告訴我,使用全局變量確實不被推薦。
同樣使用文件系統完整路徑被認爲是危險的。
解決方案是什麼?我怎樣才能確保require.php將始終爲assign.php正確的路徑,無論在哪裏require.php包括?
這與逃逸有什麼關係?你在談論文件路徑。另外你從哪裏聽說完整的文件路徑是危險的?你不希望將它們打印爲所有人看到的輸出,但是它們在代碼中沒問題。 –
什麼_is_是您嘗試從另一個位置訪問的文件的路徑?如果它們在同一個文件系統上,即使它需要多個'../../' –
,那麼您肯定能夠正確地獲取路徑。這個問題與標題完全無關。重命名。 –