2010-10-07 193 views
3

我有一个PHP脚本,说a.php,这是从JS使用Ajax调用(这是一个POST请求和一些数据传递给脚本)。如何从另一个PHP脚本调用PHP脚本?

我有另一个PHP脚本,说b.php,从中我想打电话给a.php并传递一些数据。我希望a.php能够完成这项工作,就像从JS调用它一样。

我不想做include('a.php');因为变量名之间可能发生冲突。

我该怎么做?

+0

我一会儿前解决这个问题......最终我选择了不同的方法,因为有太多的妥协。 http://stackoverflow.com/questions/3471930/how-to-sandbox-a-request-to-another-php-script – JKS 2010-10-07 23:17:21

回答

3

你为什么不把它们放在一起作为函数,使用include,并像在C++中那样调用它们? Global is bad.

+1

你是对的,我需要重新组织我的代码......谢谢! – 2010-10-08 04:45:06

1

您可以使用curlfile_get_contents通过HTTP调用它。但我认为你应该考虑重新设计。无论您是使用程序编写代码还是使用OOP代码,都应该可以在没有冲突的情况下拥有多文件程序。

0

一种方法是将b.php的服务器请求与a.php的URL进行通信,该URL通常由客户端使用。

1

如果您使用PHP 5.3,则可以使用Namespaces来避免变量名称冲突问题。

另一个建议是重构你的代码,这样你可以包含该文件,然后调用一个函数来执行它。函数调用中的所有变量只有函数的作用域。

2

一个解决方案(如果不完美)是使用file_get_contents()与URL。

所以,像这样:

$data = file_get_contents('http://domain.com/a.php?this=that&that=this'); 
$json = json_decode($data);