Я запускаю 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 🙂