81

私はphpが初めてで、コマンドラインからphpを実行したいと思っていました。WAMP をインストールし、「システム変数」を php フォルダー ( C:\wamp\bin\php\php5.4.3) に設定しました。

Run-> CMD-> Typeに移動してphp -aEnter キーを押すと、 と表示されますinteractive mode enabled。しかし、私が書いecho 'Hi';ても何も表示されません。

php -a入力してEnterキーを押しても、「php >」のようなものは表示されません。

4

12 に答える 12

74

PHP CLI と呼ばれる (コマンド ライン インターフェイスの場合は php ) は php.exe と呼ばれ、c:\wamp\bin\php\php5.x.y\php.exe そこに存在します (x と y は、インストールした php のバージョン番号です)。

コマンド ラインから実行する php スクリプトを作成する場合は、簡単で非常に便利です。

このようなバッチファイルを自分で作成して、それを呼び出しましょうphppath.cmd

PATH=%PATH%;c:\wamp\bin\php\phpx.y.z
php -v

x.y.zWAMPServer 内にインストールした PHP のバージョンの有効なフォルダー名に変更します

これを既に PATH にあるフォルダーの 1 つに保存して、どこからでも実行できるようにします。

コマンド ウィンドウからソース フォルダーに移動し、>phppath を実行します。

次に実行します

php your_script.php

夢のようにうまくいくはずです。

必要に応じて PHP Composer と PEAR を構成する例を次に示します。

@echo off

REM **************************************************************
REM * PLACE This file in a folder that is already on your PATH
REM * Or just put it in your C:\Windows folder as that is on the
REM * Search path by default
REM * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
REM * EDIT THE NEXT 3 Parameters to fit your installed WAMPServer
REM **************************************************************


set baseWamp=D:\wamp
set defaultPHPver=7.4.3
set composerInstalled=%baseWamp%\composer
set phpFolder=\bin\php\php

if %1.==. (
    set phpver=%baseWamp%%phpFolder%%defaultPHPver%
) else (
    set phpver=%baseWamp%%phpFolder%%1
)

PATH=%PATH%;%phpver%
php -v
echo ---------------------------------------------------------------


REM IF PEAR IS INSTALLED IN THIS VERSION OF PHP

IF exist %phpver%\pear (
    set PHP_PEAR_SYSCONF_DIR=%baseWamp%%phpFolder%%phpver%
    set PHP_PEAR_INSTALL_DIR=%baseWamp%%phpFolder%%phpver%\pear
    set PHP_PEAR_DOC_DIR=%baseWamp%%phpFolder%%phpver%\docs
    set PHP_PEAR_BIN_DIR=%baseWamp%%phpFolder%%phpver%
    set PHP_PEAR_DATA_DIR=%baseWamp%%phpFolder%%phpver%\data
    set PHP_PEAR_PHP_BIN=%baseWamp%%phpFolder%%phpver%\php.exe
    set PHP_PEAR_TEST_DIR=%baseWamp%%phpFolder%%phpver%\tests

    echo PEAR INCLUDED IN THIS CONFIG
    echo ---------------------------------------------------------------
) else (
    echo PEAR DOES NOT EXIST IN THIS VERSION OF php
    echo ---------------------------------------------------------------
)

REM IF A GLOBAL COMPOSER EXISTS ADD THAT TOO
REM **************************************************************
REM * IF A GLOBAL COMPOSER EXISTS ADD THAT TOO
REM *
REM * This assumes that composer is installed in /wamp/composer
REM *
REM **************************************************************
IF EXIST %composerInstalled% (
    ECHO COMPOSER INCLUDED IN THIS CONFIG
    echo ---------------------------------------------------------------
    set COMPOSER_HOME=%baseWamp%\composer
    set COMPOSER_CACHE_DIR=%baseWamp%\composer

    PATH=%PATH%;%baseWamp%\composer

    rem echo TO UPDATE COMPOSER do > composer self-update
    echo ---------------------------------------------------------------
) else (
    echo ---------------------------------------------------------------
    echo COMPOSER IS NOT INSTALLED
    echo ---------------------------------------------------------------
)

set baseWamp=
set defaultPHPver=
set composerInstalled=
set phpFolder=
set phpver=
set phpFolder=

このコマンド ファイルを次のように呼び出して、デフォルト バージョンの PHP を使用します。

> phppath

または、このような特定のバージョンの PHP を取得するには

> phppath 5.6.30
于 2013-04-29T22:25:32.920 に答える
12

バッチファイルを使ってみる

  1. メモ帳を開く
  2. タイプphp -S localhost:8000
  3. .batファイルを拡張子として保存し、server.bat
  4. server.batサーバーの準備ができているファイルをクリックしますhttp://localhost:8000

依存

エラーphpが内部コマンドまたは外部コマンドを認識しない場合は、環境変数に移動し、php.exeへのパスを編集します "C:\wamp\bin\php\php5.4.3"

于 2013-10-04T04:31:04.617 に答える
11

あなたが説明している問題は、PHP のバージョンに readline PHP モジュールがなく、対話型シェルが機能しない可能性があるように聞こえます。これは、この PHP バグの提出に基づいています。

実行してみてください

php -m

出力に「readline」が表示されるかどうかを確認します。

ディストリビューションから readline を除外する正当な理由があるかもしれません。PHP は通常、Web サーバーによって実行されます。したがって、ほとんどのユースケースでは実際には必要ありません。以下を使用して、コマンド プロンプトからファイル内の PHP コードを実行できると確信しています。

php file.php

PHP 用の (より優れた) 対話型シェルを提供するphpshプロジェクトもあります。ただし、Windows での実行に問題がある人もいます (私自身は試していません)。

編集:ここのドキュメントによると、 readlineWindowsではサポートされていません:

注: この拡張機能は、Windows プラットフォームでは使用できません。

したがって、それが正しい場合、オプションは次のとおりです。

  • 対話型シェルを使用せず、コマンド ラインからファイル内の PHP コードを実行するだけです。これでうまくいくはずです。
  • phpsh を Windows で動作させてみてください
于 2013-03-24T10:00:47.753 に答える
10

簡単なコード スニペットを実行するだけの場合は、 -r オプションを使用できます。

php -r "echo 'hi';"

-r スクリプトタグを使用せずにコードを実行できます<?..?>

于 2014-08-06T10:04:38.047 に答える
4

php.exe を使用して php ページを実行できます。php コードでいくつかの php ファイルを作成し、cmd で書き込みます。"[PATH to php.ext]\php.exe [path_to_file]\file.php"

于 2013-03-24T10:00:37.157 に答える
0

これは、php が入力内容をすべて評価する「インタラクティブ モード」にいるためです。最終結果を表示するには、「ctrl+z」と Enter キーを押します。評価された結果が表示されるはずです:)

ps管理者としてcmdを実行してください!

于 2014-01-16T16:07:05.747 に答える
0

次の解決策は、特にワンプ環境向けです。

これはしばらくの間私を悩ませ、他のすべての提案を試しました.$ PATHなどはWindowsレジストリを検索して手がかりを探しました:

GUI (wampmanager) は、バージョン 7 が選択されていることを示しています。ブラウザのページで phpinfo() を実行すると、バージョン 7.xx が表示されますが、コマンド プロンプトで php -v を実行すると 5.xx が報告されます。

wampmanager ヘッドを右クリックしてアイコン - >ツール - >未使用のバージョンを削除し、古いバージョンを削除すると、サービスが再起動され、コマンド プロンプトに 7.xx が返されます。

この解決策は、php バージョンを切り替えたい場合に古いバージョンがなくなったことを意味しますが、C:\wamp64\wampmanager.conf に構成ファイルがあり、CLI で使用するバージョンを指定しているように見えます (パラメーターは phpCliVersion と呼ばれます)。 . 私はそれを変更し、サーバーを再起動しました...解決したと思っていましたが、効果がなかったのかもしれません。

誰かを助けることを願っています

于 2017-07-07T18:13:30.077 に答える