So führen Sie PHP über die Windows-Befehlszeile in WAMPServer aus

Lesezeit: 8 Minuten

So fuhren Sie PHP uber die Windows Befehlszeile in WAMPServer aus
Daman

Ich bin neu in PHP und wollte PHP von der Befehlszeile aus ausführen. Ich habe WAMP installiert und die “Systemvariablen” auf meinen PHP-Ordner (das ist C:\wamp\bin\php\php5.4.3).

Wenn ich gehe Run -> CMD -> Typ php -a und Enter drücken, heißt es interactive mode enabled. Aber wenn ich schreibe echo 'Hi'; es zeigt nichts.

Ich sehe nicht einmal so etwas wie ‘php >’, wenn ich tippe php -a und drücken Sie die Eingabetaste.

  • stackoverflow.com/questions/7361149/…

    – mkjasinski

    24. März 2013 um 9:56 Uhr


  • Soweit ich das beurteilen kann, ist die einzige richtige Option für Windows die Verwendung von Excellent psychempfohlen von dieser anderen SO-Antwort: stackoverflow.com/a/33790472/327074

    – icc97

    27. Oktober 2017 um 15:23 Uhr


So fuhren Sie PHP uber die Windows Befehlszeile in WAMPServer aus
RiggsFolly

Die PHP-CLI, wie sie genannt wird ( php für die Befehlszeilenschnittstelle ), heißt php.exe. Sie lebt darin c:\wamp\bin\php\php5.x.y\php.exe (wobei x und y die Versionsnummern von PHP sind, die Sie installiert haben)

Wenn Sie PHP-Skripte erstellen möchten, die von der Befehlszeile aus ausgeführt werden sollen, dann ist es großartig, es ist einfach und sehr nützlich.

Erstellen Sie sich eine Batch-Datei wie diese, nennen wir sie phppath.cmd :

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

Ändern x.y.z zu einem gültigen Ordnernamen für eine PHP-Version, die Sie in WAMPServer installiert haben

Speichern Sie dies in einem Ihrer Ordner, der sich bereits auf Ihrem PATH befindet, damit Sie es von überall aus ausführen können.

Wechseln Sie nun von einem Befehlsfenster aus in Ihren Quellordner und führen Sie > phppath aus.

Dann renne

php your_script.php

Es sollte wie ein Traum funktionieren.

Hier ist ein Beispiel, das PHP Composer und PEAR konfiguriert, falls erforderlich und sie existieren

@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=

Rufen Sie diese Befehlsdatei so auf, um die Standardversion von PHP zu verwenden

> phppath

Oder um eine bestimmte Version von PHP wie diese zu erhalten

> phppath 5.6.30

  • Es funktioniert, danke. Können Sie erklären, wie das funktioniert? Ich sehe den Pfad zum PHP-Ordner, aber wie ordnet er ihn der Befehlszeilenvariablen “php” zu, und was bewirkt PATH=%PATH%?

    – TetraDev

    9. November 2015 um 21:09 Uhr


  • PATH=%PATH% sagt, erstellen Sie eine neue PATH-Umgebungsvariable mit dem aktuellen Pfad, dh %PATH% plus das neue Verzeichnis, das wir hinzufügen möchten. Windows durchsucht Ordner im PATH, um ausführbare Dateien zu finden, z. B. „php.exe“, die es im aktuellen Arbeitsverzeichnis nicht finden kann.

    – RiggsFolly

    10. November 2015 um 9:13 Uhr


  • Das OP hat effektiv nach einer PHP-REPL in Windows gefragt. Ich glaube nicht, dass dies die Frage beantwortet

    – icc97

    27. Oktober 2017 um 15:25 Uhr

  • @Cullub Funktioniert nicht in Power Shell – in der normalen Shell funktioniert es

    – Johannes

    9. Juni 2018 um 18:32 Uhr

  • @Cullub Hallo, nein, es ist nicht für die Verwendung in PowerShell geschrieben

    – RiggsFolly

    18. Juni 2018 um 17:42 Uhr

1646935447 115 So fuhren Sie PHP uber die Windows Befehlszeile in WAMPServer aus
OO

Ich erinnere mich, dass ich vor ein paar Jahren einmal auf dieses Problem gestoßen bin, weil Windows kein Readline hat, also keine interaktive Shell, um den interaktiven PHP-Modus ohne Readline-Unterstützung zu verwenden, können Sie stattdessen Folgendes tun:

C:\>php -a 
Interactive mode enabled 

<?php 
echo "Hello, world!"; 
?> 
^Z 
Hello, world!

Nachdem Sie den interaktiven Modus aufgerufen haben, geben Sie mit dem Öffnen (<?php) und schließen (?>) php-Tag und enden mit dem Steuerelement Z (^Z), was das Ende der Datei bezeichnet.

Ich erinnere mich auch, dass ich die Lösung aus dem Benutzerkommentar der PHP-Site gefunden habe: http://www.php.net/manual/en/features.commandline.interactive.php#105729

  • PHP 7.1 hat readline im Windows-Build aktiviert. Tun php -a bringt Sie zum Interactive Shell und erlauben Sie die Ausführung von Befehlen, wenn Sie die Eingabetaste drücken, ohne dass Sie tippen müssen <?php etc … siehe diesen Kommentar für den Unterschied: be2.php.net/manual/en/…

    – superphon

    26. Februar 2018 um 11:34 Uhr


So fuhren Sie PHP uber die Windows Befehlszeile in WAMPServer aus
Nischchit

Versuchen Sie es mit einer Batch-Datei

  1. Notizblock öffnen
  2. Art php -S localhost:8000
  3. Datei speichern als .bat Verlängerung, server.bat
  4. Klicken Sie jetzt auf server.bat Datei, auf der Ihr Server bereit ist http://localhost:8000

Abhängigkeit

Wenn Sie den Fehler erhalten, dass PHP keinen internen oder externen Befehl erkennt, gehen Sie zur Umgebungsvariable und bearbeiten Sie den Pfad zu php.exe
"C:\wamp\bin\php\php5.4.3"

  • Bei WAMPServer sollten Sie dem Pfad niemals etwas hinzufügen. Es zerstört die Möglichkeit, einfach zwischen mehreren PHP-Versionen zu wechseln

    – RiggsFolly

    2. September 2015 um 13:00 Uhr

1646935448 194 So fuhren Sie PHP uber die Windows Befehlszeile in WAMPServer aus
driis

Das von Ihnen beschriebene Problem klingt so, als ob Ihrer PHP-Version das readline-PHP-Modul fehlt, wodurch die interaktive Shell nicht funktioniert. Darauf stütze ich mich dieser PHP-Bug Vorlage.

Versuchen Sie es mit Laufen

php -m

Und prüfen Sie, ob “readline” in der Ausgabe erscheint.

Es kann gute Gründe geben, readline aus der Distribution wegzulassen. PHP wird typischerweise von einem Webserver ausgeführt; Daher ist es für die meisten Anwendungsfälle nicht wirklich erforderlich. Ich bin sicher, dass Sie PHP-Code in einer Datei von der Eingabeaufforderung aus ausführen können, indem Sie Folgendes verwenden:

php file.php

Es gibt auch die phpsch Projekt, das eine (bessere) interaktive Shell für PHP bereitstellt. Einige Leute hatten jedoch Probleme, es unter Windows auszuführen (ich habe es nicht selbst ausprobiert).

Bearbeiten: Entsprechend die Dokumentation hier, readline wird unter Windows nicht unterstützt:

Hinweis: Diese Erweiterung ist auf Windows-Plattformen nicht verfügbar.

Also, wenn das richtig ist, sind Ihre Optionen:

  • Vermeiden Sie die interaktive Shell und führen Sie einfach PHP-Code in Dateien von der Befehlszeile aus – das sollte gut funktionieren
  • Versuchen Sie, phpsh unter Windows zum Laufen zu bringen

Wenn Sie nur ein schnelles Code-Snippet ausführen möchten, können Sie die Option -r verwenden:

php -r "echo 'hi';"

-r ermöglicht das Ausführen von Code ohne Verwendung von Skript-Tags <?..?>

1646935448 683 So fuhren Sie PHP uber die Windows Befehlszeile in WAMPServer aus
Ram Sharma

Sie können PHP-Seiten mit php.exe ausführen, eine PHP-Datei mit PHP-Code erstellen und in die cmd schreiben "[PATH to php.ext]\php.exe [path_to_file]\file.php"

1646935449 263 So fuhren Sie PHP uber die Windows Befehlszeile in WAMPServer aus
Gemeinschaft

AKTUALISIERT
Nach einigen Recherchen bestand die beste Lösung darin, diese Informationen in einem anderen Stackoverflow-Thread zu verwenden, um die Eingabe von Strg + Z und auch die Ausgabe von scree zu vermeiden. Also statt php -a du solltest benutzen call "php.exe" -f NAMED_SCRIPT.php

ALT
Readline ist unter Windows nicht möglich, daher funktioniert keine der in PHP geschriebenen PHP-Shells. Aber es gibt eine Problemumgehung mit -a Interactive Mode.

2 häufige Probleme hier. Sie können das Ergebnis erst sehen, wenn der Befehl STRG Z ausgeführt wird, um das Ende des Codes/der Datei wie EOF anzugeben. Wenn Sie dies tun, ist das Ergebnis in den meisten Fällen ein gedrucktes Ergebnis und ein schnell geschlossenes Fenster. Wie auch immer, Sie werden zu cmd zurückkehren, nicht zum interaktiven Modus -a.

Speichern Sie diesen Inhalt in einer .bat-Datei und definieren Sie Ihren PHP PATH in Windows-Variablen oder ändern Sie stattdessen php.exe in „vollständiger Pfad zur exe“:

::
:: PHP Shell launch wrapper
::
@ECHO off
call "php.exe" -a

echo.
echo.

call "PHP Shell.bat"

Dies ist ein einfacher Batch-Start -a-Modus von php.exe. Beim Start von php, stop script wird auch keine Pause geschrieben, weil es “in” das interaktive Warten auf Eingaben geht. Wenn Sie STRG Z drücken, erhalten Sie den SIGSTEP (nächster Schritt) und nicht den SIGSTOP (schließen, normalerweise STRG + C), und lesen Sie dann die nächste Anweisung, die ein rekursiver Aufruf von .bat selbst ist. Da Sie sich immer im PHP -a-Modus befinden, gibt es keinen Exit-Befehl. Sie müssen STRG+C verwenden oder mit der Maus auf das Ausgangskreuz klicken. (Kein alt+f4)

Sie können auch den “Bat to Exe”-Konverter zur einfachen Verwendung verwenden.

988630cookie-checkSo führen Sie PHP über die Windows-Befehlszeile in WAMPServer aus

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy