Отсутствует выход из PHP, интерактивного в Windows

Я запускаю php интерактивно из xampp (5.4.7) на моей машине Win 7 и не могу получить какой-либо вывод из окна. Я искал различные решения и ничего не работал. Вот пример: C: \ xampp> php -v PHP 5.4.7 (cli) (построено: 12 сентября 2012 23:48:31) Copyright (c) 1997-2012 PHP Group Zend Engine v2.4.0, Авторское право (c ) 1998-2012 Zend Technologies

C:\xampp>php -a Interactive mode enabled <? echo "hi"; printf "hi"; fwrite (STDOUT, "hi"); 

любые другие идеи ???

Я также попробовал php -an и установил output_buffing Off в php.ini, но все это не помогло.

В основном моя цель в основном заключается в том, чтобы использовать это в качестве тестового набора для php-выражений, а также для запуска некоторых локальных скриптов.

Первая строка, которую я набираю после ввода php -a , немного отличается от вашей:

 <?php //press Enter echo 'This '; //press Enter echo 'works'; //press Enter //Press Ctrl+z on this line to get a ^Z, then press Enter This works C:\Windows\System32> 

Недостатком является то, что он возвращается в командную строку Windows, и вы должны продолжать печатать php -a и <? Php, прежде чем вы сможете ввести больше.

Чтобы сохранить немного ввода, я создал ярлык, щелкнул его правой кнопкой мыши, открыл диалоговое окно «Свойства» и в текстовое поле « Цель» ввел следующую команду:

C: \ Windows \ System32 \ cmd.exe / k "php -a"

Этот ярлык открывает приглашение PHP в интерактивном режиме. В качестве альтернативы, этот режим запускается в интерактивном режиме и перечисляет переключатели PHP:

C: \ Windows \ System32 \ cmd.exe / k "php -h & php -a"

Interactive mode не совпадает с Interactive shell . Позднее принимает команды вроде cmd или shell, найденные в linux. Первый читается во всем скрипте, а затем возвращается с выходом. Если вы нажмете CTRL-Z в конце фрагмента, он должен вернуть результат.

Проверьте здесь: http://php.net/manual/en/features.commandline.interactive.php для получения дополнительной информации (особенно первый комментарий).

Если вы запустите «php -a» и увидите «Интерактивный режим включен» вместо «Интерактивная оболочка », то ваша копия php, скорее всего, скомпилирована без поддержки readline, и нет интерактивной оболочки.

Насколько мне известно, копии Windows для Windows полностью скомпилированы без поддержки readline. Это делает вариант «-a» никчемным в Windows (по крайней мере для меня).

Предполагается, что «php -a» будет работать следующим образом (вывод из копии Linux php в этом случае):

 $ php -a Interactive shell php > echo 5+8; 13 php > exit $ 

«php -a» в Windows-копии PHP не является интерактивной оболочкой и так эффективно работает так же, как и оставить параметр «-a». Используйте F6 или CTRL + Z для ввода символа EOF для завершения скрипта (отображается как ^ Z):

 C:\>php -a Interactive mode enabled <?php echo 5+8; ?> ^Z 13 C:\> 

Оставьте «-a», и вы получите практически те же результаты (минус текст «Интерактивный режим включен»:

 C:\>php <?php echo 5+8; ?> ^Z 13 C:\> 

Если вы используете «php -a» и получаете текст «Интерактивный режим включен» и не получаете выход для cli.prompt (обычно «php>»), тогда вы должны проверить свою версию php (с помощью «php -v», ), чтобы убедиться, что это не менее 5.1, и ваши php-модули (с «php -m»), чтобы убедиться, что модуль «readline» указан.

Я создаю скрипт cmd для эмуляции интерактивной оболочки php. Он считывает каждую команду в переменную среды, а затем запускает новый экземпляр PHP для запуска каждой команды.

 @echo off :loop set /p php="php> " %=% php -r "%php%" echo. goto loop 

Использовать в окнах. Убедитесь, что у вас есть переменная PATH для php непосредственно в среде Windows. Может потребоваться перезагрузка. Используйте gitbash / cmd / rails shell / nodejs и т. Д., Но не должны иметь никакого значения. Открыть cmd

Проверьте php с командой: php -v, если все хорошее заполняет версию php и т. Д. И т. Д.

загрузите интерактивный режим с помощью: php -a введите свой код после включения, например, следующим образом (каждая строка имеет возврат каретки). ^ z – это вывод оболочки с нажатием клавиши ctrl, а вместе с этим ключом z выполняется небольшой фрагмент, но мгновенно появляется вы из интерактивного режима php

 <?php $x = 5; $y = 6; $z = $x + $y; echo $z; ?> ^z 

(вернет 11), был действительно хорош в математике ha 🙂