Подтвердить что ты не робот

Отсутствует выход из 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, Copyright (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, а также для запуска некоторых локальных скриптов.

4b9b3361

Ответ 1

Первая строка, которую я вводил после ввода 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"

Ответ 2

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

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

Ответ 3

Если вы запустите "php -a" и увидите "Интерактивный режим включен" вместо "Интерактивный shell", то ваша копия 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 для завершения script (отображается как ^ 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 "указан.

Ответ 4

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

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

Ответ 5

Использовать в окнах. Убедитесь, что у вас есть переменная 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: -)

Ответ 6

При использовании Interactive Mode вам буквально нужно ввести весь скрипт.

<?php
echo "HELLO WORLD";

Затем, чтобы "выполнить" скрипт, вам нужно сделать CTRL+Z в пустой строке и нажать ENTER

Ответ 8

Как вы можете прочитать из других ответов, Windows PHP не поддерживает команды эха (легко). В Windows 10 есть способ обойти это, однако вы можете включить подклассу Ubuntu Windows 10.

Установка windows-подсистемы для Linux

Выполните одно из следующих действий:

  • Панель управления → Приложения → Администрирование дополнительных функций. Затем убедитесь, что Windows-subsystem for linux проверена.

  • Вы также можете установить его, запустив Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux в увеличенном окне Powershell.

Теперь перезагрузите (возможно, сначала запишите эту страницу)

После перезагрузки установите это приложение и откройте его. Когда это сделало загрузку, и вы создали своего пользователя, введите sudo apt update && apt upgrade && apt install PHP.

Теперь, когда вам нужно php interactive, просто откройте командную строку и введите bash затем php -a