繁体   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