[英]PHP include files from different subdirectories within the root folder
我的問題類似於PHP包含所需的文件策略 。 我有以下文件夾結構:
/root/pages.php /root/articles/pages.php /root/includes/include_files.php /root/img/images.jpg
“ / root ”和“ / root / articles ”目錄中的所有頁面都包含“header.php”和“footer.php”文件,這些文件存儲在“ / root / includes ”目錄中。
頁眉和頁腳頁面都包含存儲在“ root / img / ”目錄中的圖像。
如下所示:
如何將根文件夾中的文件(include();)包含到來自不同子文件夾的文件中?
我嘗試了**dirname**
解決方案和$_SERVER['DOCUMENT_ROOT]
解決方案,將頁眉和頁腳包含在根目錄和articles子目錄中的文件中。
但是,當我嘗試使用任一方法(在頁眉和頁腳文件中)鏈接圖像時,我遇到了問題:
<img src=" <?php echo dirname(__FILE__). '/img/image.jpg';?>">
Chrome無法顯示圖片並引發以下錯誤:
local :不允許加載本地資源:file:/// C:/root/img/image.jpg
在服務器上: GET http://host.com/home/public_html/root/img/image.jpg 500(內部服務器錯誤)
我檢查了網址,看起來是正確的。 搜索完解決方案后,我發現chrome出於安全原因阻止顯示包含完整文件路徑的文件。
我該如何解決這個問題? 或者是否有另一種方法將文件(包括圖像)包含在存儲在任何子目錄中的文件中?
@ sandeep的回答是部分正確的。 因為
$_SERVER['DOCUMENT_ROOT'];
將再次返回到root的完全限定路徑。
<img src=" <?php echo 'http://localhost/favicon.ico';?>"/>
將返回圖像,因為現在我沒有根據您的問題給它本地路徑,但我正在運行的服務器的URL。
您包含腳本嘗試設置includes_path
使用set_include_path
set_include_path( $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR );
然后,要在您的頁面中包含腳本,您可以使用:
include( 'script.php' );
對於圖像,在路徑前面加上前導斜杠/
〜,即:
<img src='/img/image1.jpg' />
它往往更容易使用根相對路徑而不是目錄相對路徑,因此前綴為前導斜杠表示根目錄中的文件夾。
這可能會對你有所幫助
$url = $_SERVER['DOCUMENT_ROOT'].'/img/image.jpg';
<img src="<?=$url?>">
使用../img/image.jpg包含/ root / articles中的文件。
使用img / image.jpg包含在/ root中的文件中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.