Командная строка PHP в Microsoft Windows
В этом разделе содержатся заметки и советы по работе PHP, запущенного
из командной строки.
Замечание:
Сначала прочитайте руководство
по установке !
PHP, запущенный из командной строки, может выполняться без каких-либо изменений в Windows.
C:\PHP5\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3
Но есть несколько простых шагов, которые могут упростить задачу.
Некоторые из этих шагов уже могли быть выполнены, но будут приведены
здесь для того, чтобы последовательность операций не была нарушена.
-
Добавьте расположение исполняемых файлов php (php.exe,
php-win.exe или php-cli.exe в зависимости
от ваших предпочтений и версии PHP) в переменную окружения PATH.
О том, как добавить вашу директорию к PATH
читайте в соответсвующем разделе FAQ.
-
Добавьте .PHP расширение в переменную окружения
PATHEXT. Это может быть сделано при изменении
переменной PATH. Сделайте те же шаги, которые описаны в FAQ, для переменной
PATH, но для PATHEXT.
Замечание:
Позиция, в которой вы разместите .PHP, будет определять,
какой скрипт или программа будут запущенны для обработки файла с
соответствующим расширением. Например, разместив .PHP перед
.BAT, сначала будет запущен ваш скрипт, а не пакетный файл,
если есть исполняемый файл с тем же именем.
-
Ассоциируйте расширение .PHP с конкретным типом фапйла. Это
можно сделать выпонив следующую команду:
-
Ассоцируйте тип файла 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
или, если ваш путь в переменной окружения
"C:\PHP Scripts"
PATH:
Замечание:
Возникает небольшая проблема, если вы собираетесь использовать эту технику
и используете ваши 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, статья 321788.