gpt4 book ai didi

php - 当 php 文件位于不同文件夹中时包含它们

转载 作者:行者123 更新时间:2023-12-02 03:36:45 24 4
gpt4 key购买 nike

我的网站的大部分内容都在我的根目录中。在该目录中有“css”、“functions”、“images”文件夹。当我将 php 文件包含在 index.php 或任何其他根文件中时,一切正常。它很好地包含它并且很好地执行它。

但是当我创建文件夹“blog”时出现问题。因此,这是全新且独立的根文件夹,其中包含 CMS 及其自己的“根”文件。我尝试包含主根目录中的 css 或主根目录中“functions”文件夹中的一些 php 文件,一切都崩溃了。我知道我必须将其包含为 ../functions/myfile.com。但此文件包含一些其他文件,因此它无法正常工作并且无法正确包含其他文件。

有什么办法解决这个问题吗?

最佳答案

您可以访问root使用 $_SERVER['DOCUMENT_ROOT'] 在每个站点内进行操作。 仅用于测试时,您可以回显路径以确保其正常工作,如果您以正确的方式进行操作。您永远不想显示类似 includes 之类的本地服务器路径。和 requires.

站点 1

echo $_SERVER['DOCUMENT_ROOT']; //should be '/main_web_folder/';

包括以下站点:

echo $_SERVER['DOCUMENT_ROOT'].'/includes/'; // should be '/main_web_folder/includes/';

站点 2

echo $_SERVER['DOCUMENT_ROOT']; //should be '/main_web_folder/blog/';

要访问的实际代码包括 site1 内的 site2,您会说:

include($_SERVER['DOCUMENT_ROOT'].'/../includes/file_from_site_1.php');

它只会使用相对的 path如果您尝试通过排除文档根斜杠来访问执行查询的文件:

 //(not as fool-proof or non-platform specific)
include('../includes/file_from_site_1.php');

包含的路径在网站前端(实时)的任何地方的代码中都没有位置,并且应该仅在生产环境中受到保护和使用。

此外,对于网站本身的 URL,您可以将它们设置为相对于域。浏览器会自动填写其余部分,因为它们知道正在查看哪个页面。所以代替:

<a href='http://www.__domain__name__here__.com/contact/'>Contact</a>

您应该使用:

<a href='/contact/'>Contact</a>

为了获得良好的 SEO,您需要确保博客的 URL 不存在于其他域中,否则它可能会被标记为重复站点。话虽这么说,您可能还想在 robots.txt 中添加一行。 site1的文件:

User-agent: *
Disallow: /blog/

其他可能性:

Look up your IP address并包含以下代码片段:

function is_dev(){
//use the external IP from Google.
//If you're hosting locally it's 127.0.01 unless you've changed it.
$ip_address='xxx.xxx.xxx.xxx';

if ($_SERVER['REMOTE_ADDR']==$ip_address){
return true;
} else {
return false;
}
}

if(is_dev()){
echo $_SERVER['DOCUMENT_ROOT'];
}

请记住您的 ISP 是否更改了您的 IP ,就像您有 DCHP 动态 IP 一样,您需要更改该文件中的 IP 才能查看结果。我会将文件放入包含中,然后在页面上需要它以进行调试。

如果您可以使用浏览器等现代方法console log您可以这样做并在浏览器的调试界面中查看它:

if(is_dev()){
echo "<script>".PHP_EOL;
echo "console.log('".$_SERVER['DOCUMENT_ROOT']."');".PHP_EOL;
echo "</script>".PHP_EOL;
}

关于php - 当 php 文件位于不同文件夹中时包含它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16048818/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com