簡體   English   中英

PHP包含根文件夾中不同子目錄的文件

[英]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();)包含到來自不同子文件夾的文件中?

如何使用PHP包括具有相對路徑的多個目錄/子目錄

我嘗試了**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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM