17

Win 7 マシンで xampp (5.4.7) からインタラクティブに php を実行していますが、ウィンドウから出力を取得できません。さまざまなソリューションを検索しましたが、これまでのところ何も機能していません。サンプルは次のとおりです: C:\xampp>php -v PHP 5.4.7 (cli) (ビルド: 2012 年 9 月 12 日 23:48:31) Copyright (c) 1997-2012 The 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 を試し、php.ini で output_buffing Off を設定しましたが、すべて役に立ちませんでした。

基本的に私の目的は、これを php 式のテストベッドとして使用し、ローカル スクリプトを実行することです。

4

8 に答える 8

14

入力後に入力する最初の行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"

于 2013-12-01T05:30:45.400 に答える
11

Interactive modeと同じではありませんInteractive shell。後者は、cmd や Linux のシェルなどのコマンドを受け入れます。最初のものはスクリプト全体を読み取り、出力を返します。CTRL-Zスニペットの最後でヒットすると、出力が返されます。

詳細については、http: //php.net/manual/en/features.commandline.interactive.phpを参照してください (特に最初のコメント)。

于 2013-06-28T10:48:04.267 に答える
10

「php -a」を開始して「Interactive shell 」ではなく「Interactive mode enabled」と表示された場合、php のコピーは readline サポートなしでコンパイルされた可能性があり、対話シェルはありません。

私の知る限り、PHP の Windows コピーはすべて readline サポートなしでコンパイルされています。これにより、「-a」オプションは Windows では無意味になります(少なくとも私にとっては)。

「php -a」は次のように動作するはずです (この場合、php の Linux コピーからの出力):

$ php -a
Interactive shell

php > echo 5+8;
13
php > exit
$

PHP の Windows コピーの「php -a」は対話型シェルではないため、「-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" を使用して "Interactive mode enabled" というテキストが表示され、cli.prompt (通常は "php >") の出力が得られない場合は、php のバージョンを確認する必要があります ("php -v" を使用)。 ) 5.1 以上であることを確認し、php モジュール (「php -m」を使用) で「readline」モジュールがリストされていることを確認します。

于 2016-03-10T17:07:33.867 に答える
2

インタラクティブなphpシェルをエミュレートするためのcmdスクリプトを作成します。各コマンドを環境変数に読み込み、PHP の新しいインスタンスを起動して各コマンドを実行します。

@echo off
:loop
    set /p php="php> " %=%
    php -r "%php%"
    echo.
goto loop
于 2014-11-18T08:25:41.513 に答える
0

To use in windows. Ensure you have a PATH variable to php directly in your windows environment. May require restart. Use gitbash/cmd/rails shell/nodejs etc. but shouldn't make any difference. Open cmd

Check php with command: php -v if all good populates the php version etc etc

load interactive mode with: php -a enter your code once enabled, for example as follows (each line has carriage return) the ^z is the shell output of pressing the ctrl key and the z key together this runs your small snippet but instantly pops you out of php interactive mode

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

(will return 11) was really good at maths ha:-)

于 2014-10-13T09:35:04.370 に答える
0

を使用する場合Interactive Mode、文字どおりスクリプト全体を入力する必要があります。

<?php
echo "HELLO WORLD";

次に、スクリプトを「実行」するにはCTRL+Z、空の行で実行して押す必要がありますENTER

于 2018-05-02T04:15:19.560 に答える