我在php中编写了一个程序,它几乎可以完成它需要做的所有事情,但有一次我需要使用一个使用mechanize库用python编写的函数,这两个脚本都将托管在同一台服务器上。
我最初的想法是CURL
调用包含从 php 脚本到 python 脚本的任何参数,然后使用CURL
.
我对编程很陌生,在做这样的事情时不确定最好的约定,我的设置工作流程是使用CURL
通常的方式完成还是有另一种方式?
我在php中编写了一个程序,它几乎可以完成它需要做的所有事情,但有一次我需要使用一个使用mechanize库用python编写的函数,这两个脚本都将托管在同一台服务器上。
我最初的想法是CURL
调用包含从 php 脚本到 python 脚本的任何参数,然后使用CURL
.
我对编程很陌生,在做这样的事情时不确定最好的约定,我的设置工作流程是使用CURL
通常的方式完成还是有另一种方式?
如果您需要能够独立分发 PHP 代码和 Python 代码,将它们部署在不同的服务器上等,那么这是合理的——您将 Python 代码设为 Web 服务,让 PHP 代码调用该 Web 服务,然后你完成了。
但是,如果 Python 脚本总是在本地运行,那么将它作为程序运行通常会更容易——将命令行参数和/或标准输入传递给它,然后检索它的标准输出。PHP 有几种不同的方法来做到这一点——<code>system, popen
, exec
, passthru
——它们都有不同的优点和缺点。
例如,使用exec
,您只需调用escapeshellarg
每个参数,将它们放在一个以空格分隔的字符串中,并带有脚本的路径, call exec
,然后您将返回结果。
如果脚本在同一台服务器上,您始终可以exec
在 php ( http://php.net/function.exec ) 中使用该函数。
但是,请确保您知道自己在做什么,因为该功能非常强大,如果使用不当可能会非常讨厌。
我不知道这有多好(我没有亲自尝试过),但你总是可以尝试一下: