[英]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.