包括另一台服务器的PHP文件

时间:2017-10-30 08:04:15

标签: php include

我正在尝试通过PHP在两台服务器之间进行通信。可以说,有一个PHP文件" a.php"在我的localhost和另一个PHP文件" b.php"在远程服务器上。我想在a.php中包含b.php。我试图通过包含方法来实现这一点,通过提供一个完整的remore服务器路径" http://ip/b.php"但没有任何反应。 实际上我想从a.php文件运行脚本的一部分,然后我想与b.php文件通信,然后返回到.php文件。 请指导我如何做到这一点。我知道有类似的问题,我试图用这些技术解决这个问题但是徒劳无功。

谢谢

2 个答案:

答案 0 :(得分:1)

不,默认情况下,在大多数Web服务器(php.ini)中禁用/不允许此设置,因此出于安全原因,您无法使用include来包含远程地址中的文件。

如果您仍想允许包含远程文件,则必须在php.ini中将指令allow_url_include设置为On

但从安全导向的观点来看,这也是一种不好的做法;因此,它通常是禁用的(实际上我从来没有看到它启用)

如果你想读取远程文件的内容,你可以使用file_get_contents函数,但这将作为纯HTML标记代码返回,不会有任何服务器端代码。

<强> including php file from another server with php

另一种解决方案是

  1. 将您的文件另存为文本文件,将其删除。
  2. 使用file_get_contents
  3. 访问该文件

    实施例

    http://ip/b.php - 将此文件另存为b.txt

    <?php 
        $filedata = file_get_contents('http://ip/b.txt');
        eval ("?>$filedata");
    ?>
    

答案 1 :(得分:0)

尽管不安全和不好的做法,你总是可以使用.htaccess(关闭php_flag引擎)关闭特定目录的php。

然后,您的文件将直接作为文本文件提供给知道网址的人。这样你可以通过allow_url_include或Mad Angle说get_file_contets包含它们。

但无论如何 - 这是个坏主意。所以你可以尝试科学:)