P粉9767371012023-08-22 16:44:45
如果我理解你的意思正确的话,你有两个文件夹,一个是你想要将其 include
到另一个文件夹中的php脚本所在的文件夹?
如果是这种情况,你只需要正确地按照路径进行操作。 假设你的文件夹结构如下:
root includes php_scripts script.php blog content index.php
如果这是你提出的文件夹结构,并且你想要将 "Script.php" 文件包含到 "index.php" 文件夹中,你需要这样包含它:
include("../../../includes/php_scripts/script.php");
我做的方式是可视化的。我将鼠标指针放在 index.php 上(查看文件结构),每次我向上进入一个文件夹,我就输入另一个 "../"。然后你必须确保你向上进入的是你想要开始进入的文件夹的上层文件夹结构。之后,就是正常的文件夹层次结构。
P粉6148403632023-08-22 09:38:21
您可以使用$_SERVER['DOCUMENT_ROOT']
从每个站点内部访问根目录。 仅用于测试,您可以打印出路径以确保它正常工作,如果您以正确的方式进行操作。您绝对不希望显示本地服务器路径,例如包含和需要。
站点1
echo $_SERVER['DOCUMENT_ROOT']; //应该是 '/main_web_folder/';
站点1下的包含文件应该在:
echo $_SERVER['DOCUMENT_ROOT'].'/includes/'; // 应该是 '/main_web_folder/includes/';
站点2
echo $_SERVER['DOCUMENT_ROOT']; //应该是 '/main_web_folder/blog/';
从站点2访问站点1中的包含文件的实际代码:
include($_SERVER['DOCUMENT_ROOT'].'/../includes/file_from_site_1.php');
如果您尝试通过排除document root
和root
斜杠来访问文件,则只会使用执行查询的文件的相对路径(不是绝对可靠或非平台特定):
include('../includes/file_from_site_1.php');
包含的路径在站点前端(线上)的任何代码中都没有位置,应该在仅限于生产环境中进行安全使用。
此外,对于站点本身的URL,您可以使它们相对于域名。浏览器会自动填充其余部分,因为它们知道自己正在查看的页面。所以,不要使用:
<a href='http://www.__domain__name__here__.com/contact/'>联系</a>
而应该使用:
<a href='/contact/'>联系</a>
为了良好的SEO,您需要确保博客的URL在其他域中不存在,否则可能被标记为重复站点。在这种情况下,您可能还希望在仅限于站点1的robots.txt
文件中添加一行:
User-agent: * Disallow: /blog/
查找您的IP地址并包含以下代码片段:
function is_dev(){ //使用来自Google的外部IP。 //如果您在本地托管,它是127.0.01,除非您更改了它。 $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以查看结果。我建议将该文件放在一个包含文件中,然后在调试页面上要求它。
如果您可以使用浏览器的控制台日志等现代方法,您可以使用以下代码,并在浏览器的调试界面中查看它:
if(is_dev()){ echo "<script>".PHP_EOL; echo "console.log('".$_SERVER['DOCUMENT_ROOT']."');".PHP_EOL; echo "</script>".PHP_EOL; }