包括本地PHP文件和传递参数

时间:2012-06-12 11:45:28

标签: php include

我希望避免在我的网站上执行任何不必要的HTTP请求以提高性能。所以,我想在我的服务器上包含本地PHP而不使用使用cURL。问题是PHP I调用期望一些参数通过HTTP GET传递。我希望保持这种方式,因为我也希望能够从其他地方访问这些PHP文件。

这样做的最佳方式是什么?我可以在为其提供GET参数的同时访问本地PHP文件的输出吗?

3 个答案:

答案 0 :(得分:3)

  

我想避免在我的网站上做任何不必要的HTTP请求以提高性能

include在向其提供HTTP URI时也发出HTTP请求,因此不是客户端的异步包含(例如使用AJAX或iframe),而是在服务器上同步执行,因此创建页面加载速度更慢。

因此,虽然包含可能会按预期工作(您希望包含输出,对吧?),但它肯定不会加速您的网站。

  

我正在调用的PHP期望通过HTTP GET传递一些参数。我想保持这种方式,因为我也希望能够从其他地方访问这些PHP文件。

然后更改这些文件并在包含它们之前设置适当的变量。或者甚至更好,将其重构为函数。例如,如果要包含的文件如下所示:

$username = $_GET['username'];
print "User: $username";

然后重构为函数并存储在单独的文件中:

function PrintUsername($username)
{
    print "User: $username";
}

并恰当地称呼它:

include('printusername.php');
PrintUsername($_GET['username']);

(你可能想在这里和那里扔一个isset()。)现在你可以改变你的代码也需要这个输出:

include('printusername.php');
PrintUsername($someOtherVariable);

现在您不必依赖URL或$_GETinclude魔法,而只需使用所有功能。

答案 1 :(得分:2)

假设您在Linux机器上,您可以执行脚本并使用以下内容获取输出:

exec ("php myPhpFile.php arg1 arg2 arg3 > myPhpOutput.html");

然后打开输出的文件进行阅读。

为了使它工作(并且它很难!)你需要修改myPhpFile并实现一个方法来测试$ _GET参数。如果找不到,则使用argv

加载属性

改善(我懒洋洋地想:))

shell_exec将输出作为字符串返回。所以
$filecontents = shell_exec("php yourfile.php arg1 arg2 arg3...");
 将返回php文件的已处理输出。

答案 2 :(得分:0)

这很难看,但很有效。

$_GET['foo'] = 1;
$_GET['bar'] = 2;
include '/path/to/file.php';