PHP包含根文件夹

时间:2016-02-12 11:22:25

标签: php html css image include

我的问题类似于PHP include file strategy needed。我有以下文件夹结构:



/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 / " 。目录

按照建议:

how it`s possible to include a file (include();) from the root folder to a files from different subfolders?

How to use a PHP includes across multiple directories/sub directories with relative paths

我尝试了**dirname**解决方案和$_SERVER['DOCUMENT_ROOT]解决方案,将页眉和页脚包含在 root 目录和文章中存储的文件中子目录。

但是,当我尝试使用任一方法(在页眉和页脚文件中)链接图像时,我遇到了问题:

<img src=" <?php echo dirname(__FILE__). '/img/image.jpg';?>">

Chrome无法显示图片并引发以下错误:

  

本地:不允许加载本地资源:file:/// C:/root/img/image.jpg

     服务器上的

获取http://host.com/home/public_html/root/img/image.jpg 500(内部服务器错误)

我检查了网址,但它们似乎是正确的。谷歌搜索解决方案,我发现chrome出于安全原因阻止显示包含它的完整文件路径的文件。

我如何解决这个问题?或者是否有另一种方法将文件(包括图像)包含在存储在任何子目录中的文件中?

4 个答案:

答案 0 :(得分:1)

@ sandeep的回答是部分正确的。因为

$_SERVER['DOCUMENT_ROOT'];

将再次返回根目录的完全限定路径。

<img src=" <?php echo 'http://localhost/favicon.ico';?>"/>

将返回图像,因为现在我没有根据您的问题给出本地路径,而是我正在运行的服务器的URL。

答案 1 :(得分:1)

对于您添加的脚本,请尝试使用includes_path

设置set_include_path
set_include_path( $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR );

然后,要在页面中包含脚本,您可以使用:

include( 'script.php' );

对于图像,在路径前面加上前导斜杠/〜即:

<img src='/img/image1.jpg' />

使用根相对路径而不是目录相对路径往往更容易,因此前缀为前导斜杠表示根目录中的文件夹。

答案 2 :(得分:0)

这可能对您有所帮助

$url = $_SERVER['DOCUMENT_ROOT'].'/img/image.jpg';
<img src="<?=$url?>">

答案 3 :(得分:0)

使用../img/image.jpg包含/ root / articles中的文件。

使用img / image.jpg包含/ root

中的文件