【问题标题】:require a php file located in domain into a subdomain需要将位于域中的 php 文件放入子域中
【发布时间】:2014-07-19 12:19:58
【问题描述】:

所以我正在开发一个需要我将文件包含到子域中的网站。

这是我第一次在尝试要求文件时遇到问题。 所以我有一个位于

的 php 文件
domain.com/folder/myfile.php

我正在尝试包含来自blog.subdomain.com 的文件。 像往常一样,我使用了下面的代码。

$root = $_SERVER['DOCUMENT_ROOT'];
require $root.'/folder/myfile.php';

但是我得到了各种各样的错误。这是我第一次尝试将文件包含到子域中,所以我以前从未体验过。

【问题讨论】:

  • 各种错误?有什么错误?
  • 致命错误:require_once(): 无法打开所需的 '/home2/mysitename/public_html/folder/myfile.php' (include_path='.:/usr/php/54/usr/lib64:/ usr/php/54/usr/share/pear') 在
  • 看起来 myfile.php 具有相对于该路径的依赖关系,当需要到不同的位置时会引发致命错误。首先检查包含的文件。

标签: php subdomain require


【解决方案1】:

'DOCUMENT_ROOT' 指的是当前脚本正在执行的文档根目录,如服务器的配置文件中所定义。

如中所述: http://php.net/manual/en/reserved.variables.server.php

要从 PHP 获取当前站点域,请改用 SERVER_NAME:

$_SERVER['SERVER_NAME']

编辑:

因此,如果您的当前页面位于子域中,您可以从中提取主域:

// $_SERVER['SERVER_NAME'] = 'blog.domain.com'
// Extract "domain.com"
substr($_SERVER['SERVER_NAME'], strpos($_SERVER['SERVER_NAME'], '.') + 1);

【讨论】:

  • 嘿,打印出子域。但我正在尝试访问主域中的文件。
  • 您可以将“主”域提取为子域。 substr($_SERVER['SERVER_NAME'], strpos($_SERVER['SERVER_NAME'], '.') + 1)
  • 很抱歉,但我认为这不能回答我的问题。我如何要求文件进入子域。
  • 正如您所说,您希望包含位于domain.com/folder/myfile.php 的文件。所以我在回答你从子域下的页面获取主域的方法。
【解决方案2】:

您想在 blog.subdomain.com 中构建代码时访问 domain.com 中的 myfile.php。 如果您的文件 (myfile.php) 是 php 类文件,我认为没有解决方案,但如果它是普通的 php 文件(例如打印/回显某些文本),您可以使用 CURL 技术获得它。 p>

我相信您实际上不在子域中(更像是 x.comy.com)。

如果您想从 blog.domain.com 访问 domain.com 中的myfile.php,这会有点棘手。 我对您的代码做了一些修改:

$root = realpath($_SERVER['DOCUMENT_ROOT']);
$root = str_ireplace('blog.', '', $root); // this will remove "blog."
require $root.'/folder/myfile.php';

此代码对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多