栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

如果您要在命令行中使用PHP,建议您安装 phpsh,这是一个不错的PHP shell。这很有趣。

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

-r <pre>        Run PHP <pre> without using script tags <?..?>-R <pre>        Run PHP <pre> for every input line

您可以这样使用php的 -r开关

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

上面的PHP命令应该 输出

no
返回,
0
如您所见:

>>> php -r 'echo function_exists("foo") ? "yes" : "no";'no>>> echo $? # print the return value of the previous command0

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

-a    Run as interactive shell

与 phpsh 相比,有点
la脚
,但是如果您不想安装facebook制作的php真棒交互式shell来获取制表符的完成情况,历史记录等等,则可以
使用-a这样


>>> php -aInteractive shellphp > echo function_exists("foo") ? "yes" : "no";nophp >

如果它不能 像我的box * es (在Ubuntu和Arch上 测试 )那样在您的盒子上运行,则
可能是您的PHP设置模糊或损坏* 。如果运行此命令:

php -i | grep 'API'

应该 看到:

Server API => Command Line Interface

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

如果确实 看到您的php命令使用CLI(命令行界面)SAPI(服务器API),请运行

php -h | grep pre

找出哪个疯狂的开关(因为这一年没有改变) 允许您在版本/设置中运行代码。

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

>>> 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盒子上。找出与哪个ini文件一起使用
php -i | grep ini



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/412379.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号