linux命令行安装 php_linux - 如何从命令行执行PHP代码?

本文介绍了如何在命令行中执行PHP代码,特别提到了phpsh和php命令的两个开关:-r和-a。-r用于在不使用脚本标签的情况下运行PHP代码,而-a则启动一个交互式shell。通过php-i可以查看PHP的配置信息,了解哪些扩展在CLI环境中是否加载。此外,还提到了不同SAPI(服务器应用编程接口)可能使用的不同php.ini配置文件。
摘要由CSDN通过智能技术生成

如果您要在命令行中执行PHP,我建议您安装phpsh,一个体面的PHP shell。 这更有趣。

无论如何,php命令提供了两个从命令行执行代码的开关:

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

-R Run PHP for every input line

您可以使用php的-r开关:

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

上面的PHP命令应输出/etc/php/cli/php.ini并返回/etc/php/cgi/php.ini,如您所见:

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

no

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

0

另一个有趣的开关是php -a:

-a Run as interactive shell

与phpsh相比,它有点蹩脚,但是如果你不想为facebook制作的php安装令人敬畏的交互式shell来获取标签完成,历史记录等,那么使用-a如下:

>>> php -a

Interactive shell

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

no

php >

如果它在你的盒子上不起作用就像在我的盒子上* es *(在Ubuntu和Arch上测试),那么你的PHP设置可能是模糊的或破坏的。 如果您运行此命令:

php -i | grep 'API'

你应该看到:

Server API => Command Line Interface

如果不这样做,这意味着可能另一个命令将提供CLI SAPI。 试试php-cli,也许是你的操作系统中提供的软件包或命令。

如果你确实看到你的php命令使用CLI(命令行界面)SAPI(服务器API),那么运行/etc/php/cli/php.ini找出哪个疯狂的开关 - 因为这一年没有改变 - 允许在你的版本/设置中运行代码。

另外几个例子,只是为了确保它适用于我的盒子:

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

no

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

yes

另请注意,扩展可能在CLI中加载,而不是在CGI或Apache SAPI中加载。 可能有几个PHP SAPI使用不同的php.ini文件,例如 /etc/php/cli/php.ini vs /etc/php/cgi/php.ini vs /etc/php/apache/php.ini在Gentoo box上。 找出与php -i | grep ini配合使用的ini文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值