Командний рядок PHP на Microsoft Windows

Ця сторінка містить замітки та підказки стосовно запуску PHP з командного рядка Windows.

Зауваження:

Спершу, прочитайте Ручне Встановлення PHP!

PHP можна запустити з командного рядка без необхідності вносити будь-які зміни до Windows.

C:\PHP5\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3

Але існує кілька простих кроків, пройшовши які можна спростити синтаксис таких команд. Деякі з цих кроків ви повинні були вже пройти, але повторіть їх знову, щоб пройти повну покрокову послідовність.

    Зауваження:

    Такі предвизначені змінні Windows як PATH та PATHEXT є важливими системними змінними, і слід проявити обережність, щоб не перезаписати їх, а лише доповнити.

  • Додайте місцерозташування виконавчих файлів PHP (php.exe, php-win.exe або php-cli.exe в залежності від вашої версії PHP та параметрів відображення) до змінної оточення PATH. Прочитайте більше про те як додати вашу директорію PHP до PATH у відповідному пункті ЧАПу.

  • Допишіть розширення .PHP до змінної оточення PATHEXT. Це можна зробити разом з внесенням змін до змінної оточення PATH. Пройдіть такі ж кроки, які описані у ЧАПі для PATH, але внесіть відповідні зміни на цей раз до PATHEXT.

    Зауваження:

    Позиція, де ви розмістите .PHP буде визначати, яка програма або скрипт виконаються при співпадінні з назвою файла. Накриклад, розміщення .PHP перед .BAT буде викликати ваш скрипт для запуску, а не batch-файл, якщо навіть batch-файл матиме таке ж ім'я.

  • Додайте асоціацію розширення .PHP з типом файла. Це можна зробити запустивши наступну команду:

    assoc .php=phpfile
    

  • Додайте асоціацію типу файла phpfile з відповідним виконавчим PHP-файлом. Це можна зробити запустивши наступну команду:

    ftype phpfile="C:\PHP5\php.exe" -f "%1" -- %~2
    

Ці кроки дозволять запускати PHP-скрипти з будь-якої директорії без необхідності вводити шлях до виконавчого файла PHP або зазначати розширення .PHP, а всі параметри стануть застосовними до скрипта для його обробки.

В нижньому прикладі деталізовано кілька змін реєстра, які можна зробити вручну.

Приклад #1 Зміни реєстра

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.php]
@="phpfile"
"Content Type"="application/php"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile]
@="PHP Script"
"EditFlags"=dword:00000000
"BrowserFlags"=dword:00000008
"AlwaysShowExt"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\DefaultIcon]
@="C:\\PHP5\\php-win.exe,0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell]
@="Open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open]
@="&Open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\phpfile\shell\Open\command]
@="\"C:\\PHP5\\php.exe\" -f \"%1\" -- %~2"

Ці зміни дозволять писати команди, аналогічні таким:

"C:\PHP Scripts\script" -arg1 -arg2 -arg3
або, якщо ваш шлях в змінній оточення PATH є таким: "C:\PHP Scripts", то можна писати аналогічне до:
script -arg1 -arg2 -arg3

Зауваження:

Існує невелика проблема, якщо ви маєте намір використовувати цю техніку разом з PHP-скриптом в якості фільтру командного рядка, як показано нижче:

dir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3
або
dir | script -arg1 -arg2 -arg3
Ви можете виявити, що скрипт зависає і нічого не виводить. Щоб проводити такі операції, вам потрібно зробити наступні зміни реєстра:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
"InheritConsoleHandles"=dword:00000001
Можна продовжити читання інформації на цю тему в » Microsoft Knowledgebase Article : 321788.

add a note add a note

User Contributed Notes 4 notes

up
4
vechenjivot at gmail dot com
6 years ago
On Windows 10, the above registry entries didn't work for me. In order for them to work, you need to write to
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.php\UserChoice
for which you don't have access, even if you run regedit as admin (probably because of the Hash key).
The solution is actually much easier - right-click a PHP file in Explorer and associate it to always open with php.exe.
And then you need to modify the PATH variable:
setx PATH "%PATH%;c:\path\to\php" /M
if you want to execute files with commands like
php file.php
up
4
pimroes at gmail dot com
11 years ago
Make sure your run CMD.exe as an administrator, otherwise you'll get an "access denied" when you run the commands.
up
1
rudigerw at hotmail dot com
6 years ago
On Windows 10 starting php by only typing the script name in an elevated command prompt pops up a dialog to choose an app.
It turns out Windows does that when the program associated with phpfiles through ftype cannot be executed. In this case this happens because it is trying to run php.exe in non-admin mode, even when launched from an elevated command prompt. To fix this, locate your php.exe, right-click, "Properties",  "Compatibility", under Settings check "Run this program as an administrator; then also click "Change settings for all users".
up
-1
elhadjouattara at gmail dot thrcom
7 years ago
On Windows 8, with php 5.6.8 win32 VC11 in command line, need to indicate path with / rather than backslash \
Hence C:\Users\toshiba\Documents\php\test.php shall be C:/Users/toshiba/Documents/php/test.php
To Top