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 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式のテストベッドとして使用することと、いくつかのローカルスクリプトを実行することです。
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と入力し続ける必要があることです。
入力を少し節約するために、ショートカットを作成して右クリックし、[プロパティ]ダイアログを開いて、Targetに次のコマンドを入力しました。テキストボックス:
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やLinuxにあるシェルのようなコマンドを受け入れます。最初のスクリプトはwholeスクリプトを読み込み、出力とともに戻ります。スニペットの最後でCTRL-Z
を押すと、出力が返されます。
詳細については、ここを確認してください: http://php.net/manual/en/features.commandline.interactive.php (特に 最初のコメント )。
「php-a」を起動し、「Interactive Shell」ではなく「Interactive mode enabled」と表示された場合、phpのコピーはreadlineサポートなしでコンパイルされた可能性があります。インタラクティブなシェルではありません。
私が知る限り、PHPのWindowsコピーはすべてreadlineサポートなしでコンパイルされます。これにより、Windowsでは "-a"オプションは無意味になります(少なくとも私にとっては) 。
「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」を使用して「Interactivemodeenabled」というテキストを取得し、cli.Prompt(通常は「php>」)の出力が得られない場合は、phpのバージョンを確認する必要があります(「php-v」を使用) )少なくとも5.1であることを確認し、phpモジュール(「php-m」を使用)で「readline」モジュールがリストされていることを確認します。
インタラクティブなphpシェルをエミュレートするためのcmdスクリプトを作成します。各コマンドを環境変数に読み込み、PHPの新しいインスタンスを開始して、各コマンドを実行します。
@echo off
:loop
set /p php="php> " %=%
php -r "%php%"
echo.
goto loop
PHP 7.1.0現在、両方 interactive Shell
および readline
はWindowsでサポートされています。
Windowsで使用します。 Windows環境に直接phpへのPATH変数があることを確認してください。再起動が必要な場合があります。 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 :-)
他の回答からわかるように、Windows PHPはエコーコマンドを(簡単に)サポートしていません)。Windows10ではこれを回避する方法がありますが、Windows 10Ubuntuサブシェルを有効にすることができます。システム。
次のいずれかを実行します。
[コントロールパネル]-> [アプリ]-> [オプション機能の管理]。次に、Windows-subsystem for linux
がチェックされていることを確認します。
昇格されたPowershellウィンドウでEnable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
を実行してインストールすることもできます。
今すぐ再起動します(多分最初にこのページをブックマークしてください)
再起動したら、インストール このアプリ を開いてください。ロードが完了し、ユーザーを作成したら、Sudo apt update && apt upgrade && apt install PHP
と入力します。
Phpインタラクティブが必要な場合は、コマンドプロンプトを開き、bash
と入力してからphp -a
と入力します。
Interactive Mode
を使用する場合、文字通りスクリプト全体を入力する必要があります。
<?php
echo "HELLO WORLD";
次に、スクリプトを「実行」するには、空の行でCTRL+Z
を実行し、ENTER
を押す必要があります。