【问题标题】:Issues with php require and file pathphp需要和文件路径的问题
【发布时间】:2014-03-06 03:33:12
【问题描述】:

我有一个使用 php、html 和 css 的网站。由于某些内容将在页面上重复多次,因此我创建了一个单独的文件,其中包含重复的代码。然后,我使用

从我需要的所有页面中引用此文件
require('page.html')

现在的问题是我在文件夹和子文件夹中有页面,如果我参考上面的页面,它不会显示内容,因为它再也找不到“page.html”了。我通过将其更改为来解决此问题:

require('../page.html')

但这还不够,因为“page.html”上的许多内容现在都使用了不再像图像那样工作的路径。有一个更好的方法吗?还是我必须使用包含 50 个文件的单个文件夹以避免重复代码?

提前致谢。

【问题讨论】:

    标签: php html css path require


    【解决方案1】:

    只需在脚本开头使用set_include_path (http://de2.php.net/set_include_path) 并将路径设置为包含文件所在的目录。

    示例:您使用index.php 作为应用程序的入口点,它位于/var/www/yoursite/web,您想要包含的文件(例如page.html)包含在/var/www/yoursite/lib 中,然后只需添加以下内容给你的index.php:

    set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '../lib/');
    

    在您的文件中,您要包含必须执行的page.html

    include('page.html');
    

    就是这样:)

    【讨论】:

    • 嗯,这是否也可以解决图片和其他引用的问题,而不是包含/需要?
    • 不太清楚你对图像的意思——用include在php中包含图像资源没有任何意义
    • 我的意思是,当我包含另一个目录中的文件时,它会加载页面但它不会加载图像,因为它们仍然具有相同的路径,它们必须在页面上加载图像不在任何文件夹中。
    • 您应该只使用一个入口点文件,例如 index.php 并将动态加载的文件/内容的参数传递给它,例如 index.php?site=imprint - 类似于此处所述:@987654322 @
    猜你喜欢
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 2013-08-06
    • 1970-01-01
    • 2010-11-07
    • 2014-09-05
    • 1970-01-01
    • 2012-05-25
    相关资源
    最近更新 更多