交互式PHP shell如何工作?

Coo*_* Yo 7 php console

我在php -a终端中使用命令在PHP的交互式shell中,但没有命令正在运行.我甚至尝试了一个简单的2 * 2,我没有得到任何结果.

我做错了什么,它是如何工作的?

ick*_*fay 16

交互式shell的文档中,Ryan P.的第一个注释有一些值得注意的信息:

尽管名称和功能相似,但交互式Shell和交互模式并不是一回事.

如果您键入php -a并获得"Interactive Shell"的响应,然后php>提示,则可以使用交互式shell(PHP是使用readline支持编译的).如果您得到"启用交互模式"的响应,则您没有可用的交互式shell,并且本文不适用于您.

因此,如果您只启用"交互模式",那么您将只能输入PHP代码,然后在完成后,发送PHP EOF来执行它.

这可能不是你想要的.您可能想要查看phpsh.


Eri*_*ski 14

如何使用PHP交互式shell

php -a你说的是一块垃圾.

phpsh是由facebook制作的.

安装git,转到你想要构建phpsh的地方:

sudo apt-get install git
cd /home/youruser;
Run Code Online (Sandbox Code Playgroud)

拉出存储库,cd进入它并安装:

git clone https://github.com/facebook/phpsh
cd phpsh
sudo python setup.py install
Run Code Online (Sandbox Code Playgroud)

运行:

el@apollo:~$ phpsh
Starting php
type 'h' or 'help' to see instructions & features
php> 
Run Code Online (Sandbox Code Playgroud)

将Hour分配到变量并打印:

php> $t = date("H");
php> echo $t;
04
Run Code Online (Sandbox Code Playgroud)

每个人都喜欢if语句:

php> if (false){echo "derp"; } else if(true){ echo "foobar"; } else{echo "moo"; }
foobar
Run Code Online (Sandbox Code Playgroud)

获取字符串的长度:

php> echo strlen("012345678");
9
Run Code Online (Sandbox Code Playgroud)

排序:

php> $numbers=array(4,6,2,22,11);
php> sort($numbers);
php> echo $numbers;
Array
php> print_r($numbers);
Array
(
    [0] => 2
    [1] => 4
    [2] => 6
    [3] => 11
    [4] => 22
)
Run Code Online (Sandbox Code Playgroud)

按键排序:

php> $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
php> ksort($age);
php> print_r($age);
Array
(
    [Ben] => 37
    [Joe] => 43
    [Peter] => 35
)
Run Code Online (Sandbox Code Playgroud)

将值推入堆栈并将其弹出.

php> $a[]="one"
php> $a[]="two"
php> print_r($a);
Array
(
    [0] => one
    [1] => two
)
php> echo array_pop($a);
two
php> echo array_pop($a);
one
php> echo array_pop($a);
php>
Run Code Online (Sandbox Code Playgroud)

Basename获取右侧的单词:

php> echo basename("http://foobar/helicase");
helicase
php> echo basename("/home/el/polymerase");
polymerase
Run Code Online (Sandbox Code Playgroud)

触摸文件并获取上次修改时间:

php> touch("/home/el/myfile.txt");
php> echo filemtime("/home/el/myfile.txt");
1386494608
Run Code Online (Sandbox Code Playgroud)

爱我一些json:

php> $myjson = '{"a":1}';
php> var_dump(json_decode($myjson));
object(stdClass)#2 (1) {
  ["a"]=>
  int(1)
}
Run Code Online (Sandbox Code Playgroud)

从json中获取内容的几种方法:

php> $json = '{"foobar": 123}';
php> $obj = json_decode($json);
php> print $obj->foobar;
123
php> print $obj->{'foobar'};
123
Run Code Online (Sandbox Code Playgroud)

功能,JSON验证器

php> function isJson($string) {
 ...  json_decode($string);
 ...  return (json_last_error() == JSON_ERROR_NONE);
 ... }

php> echo isJson("");
1
php> echo isJson("{}");
1
php> echo isJson("abc");

php> echo isJson("{'a': 1}");

php> echo isJson('{"a": 1}');
1
Run Code Online (Sandbox Code Playgroud)