PHP - 将HTTP请求发送到本地脚本

时间:2014-03-15 18:14:58

标签: php http

我正在尝试在我的服务器上使用一个调用其他脚本的PHP脚本。

名为call.php的主脚本位于public_html文件夹中,因此我可以使用my_website.com/call.php?action=some_script_name&arg1=value&arg2=some_other_value向其发送HTTP请求。

如果action脚本在public_html中,我已经有了一种形成新请求(并执行它)的方法。例如,如果some_script.php位于/public_html/scripts/some_script.php,则我的HTTP请求将为my_website.com/scripts/some_script.php?arg1=value&arg2=some_other_value

我已经完成了,它可以正常工作。但是,我想将请求发送到不在public_html(或其任何子目录)中的脚本。例如,如果我在/lib/otherscript.php下有一个脚本,我也想调用它。

我尝试了../lib/otherscript.php?args_here之类的请求,但这不起作用。

这是可能的,如果可以的话,我该如何做到这一点?

编辑:

(共享)服务器的实际文件结构如下所示(对于此示例):

/
    public_html/
        call.php
        scripts/
            some_script.php

    lib/
        otherscript.php

2 个答案:

答案 0 :(得分:1)

您无法通过HTTP访问public_html以外的内容;这是public_html目录的重点。您有几个选择:

  • 创建一个可公开访问的包装器,以调用public_html中的功能。执行此操作的最佳方法是使用URL作为参数的类或函数。
  • 使用命令行解释器。

无论哪种方式,如果功能敏感,您可能需要进行一些用户身份验证。如果它无害,您可以将其放入public_html。如果不是,则需要进行身份验证/授权检查。

编辑,因为我最初误读了您的问题。

答案 1 :(得分:1)

如果您使用cPanel,您可以使用绝对网址访问public_html文件夹外的php文件,例如:<?php require_once('/home/username/lib/otherscript.php'); ?>现在您可以将参数发布到public_html文件夹中的任何脚本在女巫你已经包括otherscript.php

注意:您必须在绝对地址中使用您的cPanel用户名。