免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7669 | 回复: 18

[学习] 转: php交互控制台 [复制链接]

论坛徽章:
0
发表于 2006-06-09 18:20 |显示全部楼层
转自:http://blog.thinkphp.de/archives/44-More-PHP-power-on-the-command-line.html#comments

假如你在命令行下使用过php, 那么你可能知道用-r选项来执行代码. 这个特征非常棒, 但是很难正确处理"引用". 你需要知道是"单引"或"双引",还有你所使用的shell, 甚至你需要时刻保持对变量的警惕避免出错. 直接在STDIN中写入代码让php执行是件烦人的事情, 假设你想修改前面已写的代码的话. 在这种情况下,你只好把代码写入文件(即使那只有一行 + <?php)运行它. 为了解决这个问题, Marcus和我在php 5.1 cli sapi中加入了新的特征. 我很荣幸能够在这里介绍给大家: PHP交互控制台.

在你编译了PHP(GNU: --with-readline)或者(BSD: --with-libedit)后,你便能够通过使用PHP的-a选项进入这个控制台.

  1. $ php -a
  2. Interactive mode enabled

  3. php >
复制代码

你可以在这里输入些代码,然后得到反馈. 提示符会根据上下文而改变:

  1. php > $a = 1;
  2. php > $b = 2;
  3. php > echo $a + $b;
  4. 3
  5. php > function foo() {
  6. php {     echo "foo
  7. php " bar";
  8. php { }
  9. php > foo();
  10. foo
  11. bar
  12. php >
复制代码

但是这并非是我们全部拥有的. 更酷的特征是tab自动完成功能. 就象bash或者mysql控制台下你可以只输入前面几个字母,按下tab便获得可能的完成的单词列表. 目前,我们已经能够做到函数, 常量, 类名, 变量, 静态方法调用和类常量的自动完成. 目前我在进行对象方法和属性的自动完成工作.

目前自动完成尚有一些限制, 比如对于变量或对象, 它只能在先前行定义并执行后才会自动完成, 并不能在单行多次使用或在一个函数内很好地工作. 但是大多数情况下,它能避免我们打印很多字母.

请随意测试, 并给我们反馈意见.

--johannes

偶的php版本是5.0, 使用-a选项似乎和介绍有点不同.
则这里需要<?php开始.

  1. [yarco@China x]$ php -a
  2. Interactive mode enabled

  3. <?php
  4.         print PHP_OS;
  5. Linux
  6.         print_r($_POST);
  7. Array
  8. (
  9. )
  10. [yarco@China x]$ php -v
  11. PHP 5.0.4 (cli) (built: May  9 2005 11:21:11)
  12. Copyright (c) 1997-2004 The PHP Group
  13. Zend Engine v2.0.4-dev, Copyright (c) 1998-2004 Zend Technologies
  14. [yarco@China x]$
复制代码


偶翻译的不是很滥吧???

[ 本帖最后由 HonestQiao 于 2006-6-9 18:28 编辑 ]

论坛徽章:
0
发表于 2006-06-10 15:13 |显示全部楼层
php -a出现Interactive mode enabled而没有出现php >, 不知道怎么回事?

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
发表于 2006-06-10 15:36 |显示全部楼层
原帖由 dolmans 于 2006-6-10 15:13 发表
php -a出现Interactive mode enabled而没有出现php >, 不知道怎么回事?



注意版本

论坛徽章:
0
发表于 2006-06-10 20:11 |显示全部楼层
我的是PHP 5.1.4 (cli) (built: May  4 2006 10:35:22) WinXP,不懂为什么,是XP不支持?

论坛徽章:
0
发表于 2006-06-10 21:33 |显示全部楼层
你可以直接写了

我今天才知道php的交互模式

论坛徽章:
0
发表于 2006-06-11 09:26 |显示全部楼层
原帖由 james.liu 于 2006-6-10 21:33 发表
你可以直接写了


直接写是可以,但是不知道如何启动代码的执行。

论坛徽章:
0
发表于 2006-06-11 10:03 |显示全部楼层
原帖由 dolmans 于 2006-6-11 11:26 发表


直接写是可以,但是不知道如何启动代码的执行。


用 <?php 开头。然后就可以了。
LZ 不是专门说了吗……

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
发表于 2006-06-11 11:27 |显示全部楼层
Windows下面:

  1. F:\usr\local\php5>php -a
  2. Interactive mode enabled

  3. <?php
  4. $a=1;
  5. $b=2;
  6. echo $a+$b;
  7. 3
  8. function foo() {
  9.         echo "foo bar";
  10. }
  11. foo();
  12. foo bar
  13. ^C
  14. F:\usr\local\php5>php -v
  15. PHP 5.1.4 (cli) (built: May  4 2006 10:35:22)
  16. Copyright (c) 1997-2006 The PHP Group
  17. Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies

  18. F:\usr\local\php5>
复制代码


要点:
输入<?php之后,才开始PHP的解析了,很多Unix的特性没有。

论坛徽章:
0
发表于 2006-06-11 12:12 |显示全部楼层
原帖由 HonestQiao 于 2006-6-11 11:27 发表
输入<?php之后,才开始PHP的解析了,很多Unix的特性没有。


got it. thx.

论坛徽章:
0
发表于 2006-06-11 13:31 |显示全部楼层
这个交互一般有什么应用?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP