如何从命令行执行PHP代码?

我想if(function_exists("my_func")) echo 'function

exists';直接在命令行执行单个php语句,而不必使用单独的php文件。

这怎么可能 ?

回答:

这很有趣。

无论如何,php命令提供了 :

-r <code>        Run PHP <code> without using script tags <?..?>

-R <code> Run PHP <code> for every input line

您可以这样使用php的 :

php -r 'echo function_exists("foo") ? "yes" : "no";'

上面的PHP命令应该 no0如您所见:

>>> php -r 'echo function_exists("foo") ? "yes" : "no";'

no

>>> echo $? # print the return value of the previous command

0

另一个有趣的开关是 :

-a               Run as interactive shell

,但是如果您不想安装facebook制作的php真棒交互式shell来获取制表符的完成情况,历史记录等等,则可以

>>> php -a

Interactive shell

php > echo function_exists("foo") ? "yes" : "no";

no

php >

像我的box * es(在Ubuntu和Arch上 测试 )那样在您的盒子上运行,则

可能是您的PHP设置模糊或损坏* 。如果运行此命令:

php -i | grep 'API'

您 看到:

Server API => Command Line Interface

,这意味着 。尝试php-cli,也许它是您操作系统中可用的软件包或命令。

看到您的php命令使用CLI(命令行界面)SAPI(服务器API),请运行php -h | grep code

允许您在版本/设置中运行代码。

另外两个例子,只是为了确保它可以在我的盒子上工作:

>>> php -r 'echo function_exists("sg_load") ? "yes" : "no";' 

no

>>> php -r 'echo function_exists("print_r") ? "yes" : "no";'

yes

另外,请注意,有可能在CLI中而不是CGI或Apache SAPI中加载了扩展。

,例如/etc/php/cli/php.inivs /etc/php/cgi/php.ini与vs

/etc/php/apache/php.ini在Gentoo盒子上。找出与哪个ini文件一起使用php -i | grep ini

以上是 如何从命令行执行PHP代码? 的全部内容, 来源链接: utcz.com/qa/427335.html

回到顶部