Как использовать интерактивную оболочку PHP

Я использую Ubuntu 12.04 64 бит, и я хочу использовать интерактивную оболочку PHP:

php -a

Но это не работает очень хорошо, много синтаксиса неправильно интерпретируется.

Когда я запускаю php -a, он отображает:

interactive mode enabled

И только курсор мигает.

Я использую: PHP 5.4.13-2 ~ exact + 1 (cli) (построено: 21 марта 2012 12:17:18)

Как использовать интерактивную оболочку PHP?

Ответ 1

Попробуйте установить http://www.phpsh.org/, это, вероятно, самое простое решение.

Шаги: (при условии, что установлена ​​зависимость)

  • git clone https://github.com/facebook/phpsh
  • cd phpsh
  • sudo python setup.py install
  • phpsh

Ответ 2

Как использовать интерактивную оболочку PHP

phpsh был сделан facebook. Чтобы установить его, см. Это: http://www.phpsh.org/

Указания по установке:

sudo apt-get install git
cd /home/youruser;

Потяните в него репозиторий, cd и установите:

git clone https://github.com/facebook/phpsh
cd phpsh
sudo python setup.py install

Запустить его:

[email protected]:~$ phpsh
Starting php
type 'h' or 'help' to see instructions & features
php> 

Пошаговое руководство:

Печать строк:

php> echo 'hi';
hi

Произведите некоторую математику:

php> echo 1+2;
3

Распечатайте встроенные переменные:

php> echo $_SERVER;
Array

Распечатайте содержимое этого массива:

php> print_r($_SERVER);
Array
(                                    
    [LANG] => en_US.UTF-8
    [TERM] => xterm
    [SHELL] => /bin/bash
)

Получить ключ этого массива:

php> echo $_SERVER['TERM'];
xterm

Добавление другого типа:

php> =2+2
4

Печать предыдущего:

php> = $_
4

Сохраните переменную:

php> $msg = "don't just sit there fancy pants, take the wheel";
php> echo $msg;
don't just sit there fancy pants take the wheel

Уравнение можно удерживать открытым по новым строкам, пока оно не завершится:

php> =2+
 ... 3+
 ... 4+5
14

Определите наши собственные массивы:

php> $derp = array(1,2,3);
php> echo $derp
Array

Получить тип переменной:

php> echo gettype(PHP_VERSION);
string

Для большой справедливости, петли:

php> $i = 0; while ($i < 3){$i++; echo "pinkie pie is best pony ";}
pinkie pie is best pony pinkie pie is best pony pinkie pie is best pony

Получить информацию о себе:

php> phpinfo();
phpinfo();
PHP Version => 5.3.10-1ubuntu3.8 

Explode анализирует строку в пространстве в массиве, print_r довольно печатает ее:

php> function little_bad_girl(){ print_r(explode(" ", "oxy contin")); }
php> little_bad_girl();
Array
(
    [0] => oxy
    [1] => contin
)

Структура Foreach может быть расширена на следующие строки.

php> foreach (array(1,2,3) as $item) {
 ... echo $item;
 ... }
123

Комментарии блока игнорируются:

php> /* echo "hidden"; */
php>

Чтение из файла:

php> $section = file_get_contents('/home/el/myfile.txt');
php> echo $section;
we will become a spacefaring civilization.

Нет, нет времени:

php> echo time();
1386492405

Чистая сладкая истина:

php> echo isset($_SERVER);
1

Сделайте массив, найдите в нем элемент.

php> $data = array(0, 1, 2);    
php> echo preg_grep("/1/", $data);
Array
php> print_r( preg_grep("/1/", $data));
Array
(
    [1] => 1
)
php> print_r( preg_grep("/4/", $data));
Array
(
)

Вы хотите больше??? Достаточно заполнить всю жизнь, божественную скорость: http://php.about.com/od/advancedphp/

Ответ 3

Это то, что вы получите, когда пакет php5-readline не установлен. Предположим, что ваша проблема вы можете исправить, выполнив эту команду:

sudo apt-get install php5-readline

Ответ 4

Как насчет PsySH?

Пример litle:

psysh 
Psy Shell v0.7.2 (PHP 5.5.12-2ubuntu4.6 — cli) by Justin Hileman
>>> $toto='ejgf5d78gfmkzl'
=> "ejgf5d78gfmkzl"
>>> substr($toto,0,2)
=> "ej"