Запуск PHP в командной строке системы Windows
Раздел содержит примечания и подсказки, которые касаются запуска PHP
из командной строки Windows.
Замечание:
Сначала прочитайте пошаговое
руководство по установке!
PHP запускают из командной строки без внесения каких бы то ни было
изменений в Windows.
C:\php\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3
Но есть несколько шагов, которые упрощают запуск PHP из командной строки.
Отдельные шаги уже выполнили, но они повторяются
здесь, чтобы объяснить последовательность действий.
-
Добавьте расположение исполняемого файла PHP — php.exe,
php-win.exe или php-cli.exe,
в зависимости от версии PHP и предпочтений отображения — в переменную
окружения PATH. Подробнее о добавлении каталога PHP
в переменную окружения PATH рассказывает
запись часто
задаваемых вопросов. -
Добавьте расширение
.PHP
к переменной окружения
PATHEXT. Это делают одновременно с изменением
переменной окружения PATH. Выполните те же действия,
что и в ЧАВО, но измените
переменную окружения PATHEXT, а не PATH.Замечание:
Позиция, в которую помещают расширение
.PHP
, будет определять,
какой скрипт или программа выполнится при совпадении имён файлов.
Например, расположение расширения.PHP
перед расширением
.BAT
запустит скрипт, а не пакетный файл, если каталог
содержит пакетный файл с тем же названием. -
Настройте ассоциацию расширения
.PHP
с типом файла
путём запуска следующей команды: -
Настройте ассоциацию типа файла
phpfile
с исполняемым файлом PHP,
который соответствует этому типу файла, путём запуска следующей команды:ftype phpfile="C:\php\php.exe" -f "%1" -- %~2
Замечание:
Переменные окружения PATH и PATHEXT —
важные переменные, которые появились в Windows в самом начале и которые
нельзя перезаписывать, а только добавлять для них значения.
Эти шаги настроят запуск 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:\\php\\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:\\php\\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.
В Windows 10 этот параметр изменили на противоположный, и стандартная
установка Windows 10 поддерживает унаследованные дескрипторы консоли. Это »
сообщение на форуме Microsoft даёт объяснение.
Нашли ошибку?
pimroes at gmail dot com ¶
14 years ago
Make sure your run CMD.exe as an administrator, otherwise you'll get an "access denied" when you run the commands.
rudigerw at hotmail dot com ¶
9 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".
В CLI SAPI есть три различных способа запуска PHP-кода:
-
Указание конкретного файла для запуска.
$ php my_script.php $ php -f my_script.php
Оба способа (с указанием опции -f или без) запустят
файл my_script.php. Нет ограничений, какой
файл запускать; в частности, файлы не обязаны иметь
расширение.php
. -
Передать PHP-код напрямую в командной строке.
$ php -r 'print_r(get_defined_constants());'
Необходимо быть особо осторожным при использовании этого способа,
т.к. может произойти подстановка переменных оболочки при использовании
двойных кавычек.Замечание:
Внимательно прочтите пример: в нем нет открывающих и закрывающих тегов!
Опция -r просто в них не нуждается, и их использование
приведёт к ошибке разбора. -
Передать запускаемый PHP-код через стандартный поток ввода
(stdin
).Это даёт мощную возможность создавать PHP-код и
передавать его запускаемому файлу, как показано в этом
(вымышленном) примере:$ some_application | some_filter | php | sort -u > final_output.txt
Вы не можете комбинировать любой из этих трёх способов запуска кода.
Как и любое другое консольное приложение бинарный файл PHP
принимает аргументы, но PHP-скрипт также получает
аргументы. PHP не ограничивает количество аргументов,
передаваемых в скрипт (оболочка консоли устанавливает
некоторый порог количества символов, которые могут передать;
обычно этого лимита хватает). Переданные аргументы доступны
в глобальном массиве $argv. Первый индекс
(ноль) всегда содержит имя вызываемог из командной
строкио скрипта. Учтите, что если код вызывается из командной
строки на лету с опцией -r, значением
элемента $argv[0] будет «Стандартный поток»
(Standard input code);
до PHP 7.2.0 это был дефис ("-"
). То же самое верно и для кода,
переданного через конвейер из STDIN
.
Вторая зарегистрированная глобальная переменная —
$argc, которая содержит количество элементов
в массиве $argv
(а не количество аргументов,
которые передали скрипту).
Если передаваемые аргументы не начинаются с символа
-
, то особых проблем быть не должно.
Передаваемый в скрипт аргумент, который начинается с -
создаст проблемы, т.к. PHP решит, что он сам должен его
обработать. Для предотвращения подобного поведения
используйте разделитель списка аргументов --
.
После того, как этот разделитель будет проанализирован PHP, все последующие
аргументы будут переданы в скрипт нетронутыми.
# Эта команда не запустит данный код, но покажет информацию об использовании PHP $ php -r 'var_dump($argv);' -h Usage: php [options] [-f] <file> [args...] [...] # Эта команда передаст аргумент '-h' в скрипт, предотвратив показ справки PHP $ php -r 'var_dump($argv);' -- -h array(2) { [0]=> string(1) "-" [1]=> string(2) "-h" }
Однако, в Unix-системах есть ещё один способ использования
PHP для консольных скриптов. Можно написать скрипт,
первая строка которого будет начинаться с
#!/usr/bin/php
(или же другой
корректный путь к бинарному файлу PHP CLI).
После этой строки можно поместить обычный PHP-код, заключённый
в открывающие и закрывающие теги PHP. Как только будут установлены
корректные атрибуты запуска на файл (например,
chmod +x test), скрипт может быть
запущен как обычный консольный или perl-скрипт:
Пример #1 Запуск PHP-скрипта как консольного
#!/usr/bin/php
<?php
var_dump($argv);
?>
Предполагая, что этот файл назван test
и находится в текущей директории, можно сделать следующее:
$ chmod +x test $ ./test -h -- foo array(4) { [0]=> string(6) "./test" [1]=> string(2) "-h" [2]=> string(2) "--" [3]=> string(3) "foo" }
Как можно увидеть, в этом случае не нужно заботиться о
передаче параметров, которые начинаются с -
.
Исполняемый PHP-файл может использоваться для запуска PHP-скриптов
независимо от веб-сервера. В случае работы в Unix-подобной системе,
необходимо добавить в первую строку файла #!
(называемый также «shebang»)
чтобы указать, какая из программ должна запускать скрипт.
На Windows-платформах можно назначить обработчик php.exe для файлов
с расширениями .php
или создать пакетный
(.bat) файл для запуска скриптов посредством PHP.
Строка, добавляемая в начале скрипта для Unix-систем,
не влияет на их работу в ОС Windows, таким образом можно
создавать кросс-платформенные скрипты. Ниже приведён простой
пример скрипта, который выполняется из командной строки:
Пример #2 Скрипт для запуска из командной строки (script.php)
#!/usr/bin/php
<?phpif ($argc != 2 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {
?>
Это консольный PHP-скрипт, принимающий один аргумент.
Использование:
<?php echo $argv[0]; ?> <option>
<option> Любое слово, которое вы хотели бы
напечатать. Опции --help, -help, -h,
или -? покажут текущую справочную информацию.
<?php
} else {
echo $argv[1];
}
?>
В приведённом выше скрипте в первой строке содержится shebang,
указывающий что этот файл должен запускаться PHP. Работа ведётся с CLI-версией,
поэтому не будет выведено ни одного HTTP-заголовка.
Скрипт сначала проверяет наличие обязательного одного аргумента (в дополнение к
имени скрипта, который также подсчитывается). Если их нет, или если переданный
аргумент был —help, -help,
-h или -?, выводится
справочное сообщение с использованием $argv[0], которое содержит
имя выполняемого скрипта. В противном случае просто выводится полученный аргумент.
Для запуска приведённого примера в Unix-системе, нужно сделать
его исполняемым и просто выполнить в консоли
script.php echothis или
script.php -h. В Windows-системе можно
создать пакетный файл:
Пример #3 Пакетный файл для запуска PHP-скрипта из командной строки (script.bat)
@echo OFF "C:\php\php.exe" script.php %*
Предполагая, что вышеприведённый скрипт называется
script.php, а полный путь к CLI
php.exe находится в
C:\php\php.exe, этот пакетный файл
запустит его с переданными параметрами:
script.bat echothis или
script.bat -h.
Также можно ознакомиться с модулем
Readline для получения
дополнительных функций, которые можно использовать для улучшения
консольного PHP-скрипта.
В Windows запуск PHP можно настроить без
необходимости указывать C:\php\php.exe или
расширение .php
.
Подробнее эта тема описана в разделе
Запуск PHP из
командной строки в Microsoft Windows.
Замечание:
В Windows рекомендуется запускать PHP под актуальной учётной записью пользователя.
При работе в сетевой службе некоторые операции не будут выполнены, поскольку
«сопоставление имён учётных записей и идентификаторов безопасности не выполнено».
Нашли ошибку?
php at richardneill dot org ¶
12 years ago
On Linux, the shebang (#!) line is parsed by the kernel into at most two parts.
For example:
1: #!/usr/bin/php
2: #!/usr/bin/env php
3: #!/usr/bin/php -n
4: #!/usr/bin/php -ddisplay_errors=E_ALL
5: #!/usr/bin/php -n -ddisplay_errors=E_ALL
1. is the standard way to start a script. (compare "#!/bin/bash".)
2. uses "env" to find where PHP is installed: it might be elsewhere in the $PATH, such as /usr/local/bin.
3. if you don't need to use env, you can pass ONE parameter here. For example, to ignore the system's PHP.ini, and go with the defaults, use "-n". (See "man php".)
4. or, you can set exactly one configuration variable. I recommend this one, because display_errors actually takes effect if it is set here. Otherwise, the only place you can enable it is system-wide in php.ini. If you try to use ini_set() in your script itself, it's too late: if your script has a parse error, it will silently die.
5. This will not (as of 2013) work on Linux. It acts as if the whole string, "-n -ddisplay_errors=E_ALL" were a single argument. But in BSD, the shebang line can take more than 2 arguments, and so it may work as intended.
Summary: use (2) for maximum portability, and (4) for maximum debugging.
email at alexander-bombis dot de ¶
4 years ago
For Windows:
After the years I also have the fact that I have to use double quotation marks after php -r on Windows shell.
But in the Powershell you can use single or double quotation!
gabriel at figdice dot org ¶
8 years ago
Regarding shebang:
In both Linux and Windows, when you execute a script in CLI with:
php script.php
then PHP will ignore the very first line of your script if it starts with:
#!
So, this line is not only absorbed by the kernel when the script file is executable, but it is also ignored by the PHP engine itself.
However, the engine will NOT ignore the first #! line of any included files withing your "outer" script.php.
Any "shebang" line in an included script, will result in simply outputting the line to STDOUT, just as any other text residing outside a <?php ... ?> block.
david at frankieandshadow dot com ¶
8 years ago
A gotcha when using #!/usr/bin/php at the start of the file as noted above:
if you originally edited the file on Windows and then attempt to use it on Unix, it won't work because the #! line requires a Unix line ending. Bash gives you the following error message if it has DOS line endings:
"bash: /usr/local/bin/wpreplace.php: /usr/bin/php^M: bad interpreter: No such file or directory"
(In Emacs I used "CTRL-X ENTER f" then type "unix" and ENTER to convert)
spencer at aninternetpresence dot net ¶
13 years ago
If you are running the CLI on Windows and use the "-r" option, be sure to enclose your PHP code in double (not single) quotes. Otherwise, your code will not run.
Last Updated :
13 Sep, 2024
PHP Installation for Windows Users
Follow the steps to install PHP on the Windows operating system.
Step 1:
First, we have to download PHP from its official website. We have to download the .zip file from the respective section depending upon our system architecture(x86 or x64).
Step 2:
Extract the .zip file to your preferred location. It is recommended to choose the Boot Drive(C Drive) inside a folder named php (ie. C:\php).
Step 3:
- Access System Properties: Right-click on the “My Computer” or “This PC” icon, select “Properties” from the context menu, then click on “Advanced system settings.”
- Open Environment Variables: In the System Properties window, click on the “Environment Variables” button.
- Edit the PATH Variable: In the “System Variables” section, find the “PATH” variable, select it, and click “Edit.” If it doesn’t exist, click “New” to create it.
- Add PHP Path and Save: In the “Edit System Variable” window, add the path to your PHP folder (e.g., C:\php). Click “OK” to save, and close all remaining windows by clicking “OK.”
PHP Installation for Linux Users
Linux users can install php using the following command.
apt-get install php5-common libapache2-mod-php5 php5-cli
It will install php with apache server.
PHP Installation for Mac Users
Mac users can install php using the following command.
curl -s https://php-osx.liip.ch/install.sh | bash -s 7.3
It will install php in your system.
After installation of PHP, we are ready to run PHP code through command line. You just follow the steps to run PHP program using command line.
- Open terminal or command line window.
- Goto the specified folder or directory where php files are present.
Then we can run php code using the following command:
php file_name.php
We can also start server for testing the php code using the command line by the following command:
php -S localhost:port -t your_folder/
Note: While using the PHP built-in server, the name of the PHP file inside the root folder must be index.php, and all other PHP files can be hyperlinked through the main index page.
PHP is a server-side scripting language designed specifically for web development. You can learn PHP from the ground up by following this PHP Tutorial and PHP Examples.
Для чего нужен запуск php-скриптов через командную строку? Он позволяет проверить и отладить работу скриптов на новой версии PHP или с иными значениями PHP-директив, не меняя их для всего сайта целиком (например, если на более высокой версии PHP скрипт работает некорректно, то его запуск через консоль не нарушит работу сайта, что может произойти если сменить версию на самом сайте).
Также это позволит обойти ограничение времени работы скриптов при запуске их через браузер, которое есть на всех хостингах (делается это для того, чтобы некорректно написанные скрипты, например зацикленные, не могли нарушить работу сервера в целом) — скрипт будет работать, пока достаточно ресурсов на услуге хостинга.
Подключить SSH-доступ
1. Чтобы иметь возможность запустить PHP скрипт из командной строки, необходимо иметь услугу хостинга с активным SSH-доступом. Проверить, активен ли SSH-доступ у Вас, можно в панели хостинга в разделе «Инструменты». Если при открытии данного раздела есть пункт «Shell-клиент», то SSH-доступ на Вашей услуге хостинга открыт.
Если же такого пункта нет, то Вам нужно через личный аккаунт создать запрос в службу поддержки, чтобы данный доступ предоставили.
Подключение по SSH
2. После получения SSH-доступа, подключимся к нашей услуге через любой SSH-клиент.
Либо можно использовать Shell-клиент из панели хостинга, но он не совсем удобен, для тех случаев, когда команды требуется откуда-то копировать и затем вставлять в консоль.
Команды для подключения через терминал Linux или утилиту PowerShell Windows будет иметь следующий вид:
ssh -p 34716 логин@имя или IP-адрес сервера.
Логином служит имя пользователя от панели хостинга.
Примеры:
ssh -p 34716 usertest@fry.handyhost.ru
ssh -p 34716 usertest@109.95.210.219
После подключения можем приступать к запуску.
Запуск PHP-скрипта
3. Самый простой вариант — команда вида php/путь/к/скрипту. Такая команда запустит указанный Вами скрипт через нативную версию PHP (системную версию PHP, которая по умолчанию устанавливалась для ОС сервера с Вашей услугой хостинга), с теми настройками, которые установлены на сервере по умолчанию.
Пример:
php /var/www/usertest/data/www/fryhh.onhh.ru/info.php
Узнать какая версия PHP используется по умолчанию на сервер с Вашей услугой можно командой: php -v
В данном примере версией PHP, используемой по умолчанию является версия 7.3.
4. Для запуска через конкретную версию PHP указать в нашей команде путь к сборке PHP соответствующей версии. Команда будет иметь вид:
/opt/alt/phpXX/usr/bin/php/путь/к/скрипту
Примеры:
/opt/alt/php53/usr/bin/php /var/www/usertest/data/www/fryhh.onhh.ru/info.php
/opt/alt/php72/usr/bin/php /var/www/usertest/data/www/fryhh.onhh.ru/info.php
/opt/alt/php81/usr/bin/php /var/www/usertest/data/www/fryhh.onhh.ru/info.php
Список доступных сборок:
/opt/alt/php51/usr/bin/php
/opt/alt/php52/usr/bin/php
/opt/alt/php53/usr/bin/php
/opt/alt/php54/usr/bin/php
/opt/alt/php55/usr/bin/php
/opt/alt/php56/usr/bin/php
/opt/alt/php70/usr/bin/php
/opt/alt/php71/usr/bin/php
/opt/alt/php72/usr/bin/php
/opt/alt/php73/usr/bin/php
/opt/alt/php74/usr/bin/php
/opt/alt/php80/usr/bin/php
/opt/alt/php81/usr/bin/php
/opt/alt/php82/usr/bin/php
На скриншоте запуск скрипта через версию PHP 5.1.
5. Важно — если в настройки той версии PHP, через которую запускается скрипт, были внесены изменения через панель хостинга, то скрипт также запустится с этими настройками PHP.
Скрипт, используемый в качестве примера в данной статье, выводит информацию о версии и настройках PHP, через которые он запущен.
На скриншоте показаны результаты его запуска через нативную версию PHP 7.4, для которой значение параметра memory_limit менялось и версию PHP 7.2, для которой изменения настроек не производилось (к результатам работы применен фильтр через функцию grep по параметру memory_limit).
Если нам по каким-то причинам требуется запустить скрипт через определенную версию PHP с настройками, отличающимися от тех, что заданы для этой версии через панель, то можно использовать опцию -n — не будут учитываться никакие ini-файлы и соответственно внесенные через панель изменения, либо опцию -d для переопределения конкретной директивы.
Примеры:
/opt/alt/php74/usr/bin/php -d memory_limit=1000M /var/www/usertest/data/www/fryhh.onhh.ru/info.php
/opt/alt/php74/usr/bin/php -n /var/www/usertest/data/www/fryhh.onhh.ru/info.php
На скриншоте показаны результаты запуска скрипта через PHP 7.4, для которой значений параметра memory_limit установлено на 350 Мб через панель хостинга. Запуск производился с опцией -n, опцией -d memory_limit=1000M, которая устанавливает значение параметра memory_limit на 1000 Мб и без дополнительных опций. К результатам вывода также применен фильтр через функцию grep по параметру memory_limit.
Купить хостинг на PHP можно на нашем сайте.
В данном материале мы рассмотрим такие вопросы как: настройка PHP для работы в командной строке, выполнение PHP-кода в командной строке,
запуск PHP скриптов в командной строке без аргументов и с аргументами.
«На дисерт», в последнем пункте материала, будет показан процесс установки через командную строку
менеджера зависимостей для PHP getcomposer.org.
Начиная с версии 4.3.0, PHP поддерживает новый вид SAPI (интерфейс разработки серверных приложений) под названием CLI, что означает интерфейс командной строки.
Как видно из названия, этот вид SAPI предназначен для разработки консольных (или даже десктопных) приложений на PHP.
Начиная с PHP 4.3.0 дистрибутив для Windows влючает в себя CLI-модуль php.exe, расположенный в отдельной директории cli, полное имя — cli/php.exe.
Начиная с PHP 5, CLI-модуль расположен в основной директории и называется php.exe. CGI-модуль также включен в дистрибутив под названием php-cgi.exe.
Начиная с PHP 5, в дистрибутив для Windows входит новый файл php-win.exe. Он полностью эквивалентен CLI, за исключением того,
что php-win абсолютно ничего не выводит, что приводит к отстутствию консоли (окно DOS не появляется на экране).
Настраиваем работу PHP из командной строки
Прежде всего Вы должны узнать расположение CLI-модуля, файла с именем «php.exe». В моем случае полный путь до данного файла выглядит так — «C:\php\php.exe».
Теперь нам нужно проверить работает ли PHP в командной строке. Для этого откроем командную строку (желательно от имени администратора) и выполним команду:
C:\Windows\system32>C:\php\php.exe --help
укажем полный путь до CLI-модуля, файла «php.exe» (т.е. «C:\php\php.exe»), и через пробел добавим ключ «—help».
(вызов «PHP» в консоли с ключем «—help» покажет справочную информацию).
Если после выполнения данной команды Вы получили предупреждения или сообщения об ошибках, то вероятнее всего, Вами был не верно указан путь до CLI-модуля «C:\php\php.exe».
При удачном выполнение команды должна отобразиться справочная информация. Поздравляю, Ваш PHP работает в консоли.
Вы наверное согласитесь со мной, что каждый раз указывать путь «C:\php\php.exe» довольно-таки не приятно,
и конечно же, запуск PHP можно настроить без необходимости указывать полный путь до файла «C:\php\php.exe».
Для этого необходимо в «Переменные среды» в переменную «PATH» добавить путь до этого файла.
Давайте ради интереса, до внесения изменений в переменную «PATH», попробуем вызвать в консоли PHP:
выполняем команду с опцией «php —help»
C:\Windows\system32>php --help
В ответ Вы скорее всего получите:
C:\Windows\system32>php --help "php" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
Теперь добавим путь до CLI-модуля «php.exe» в переменную «PATH». Найти данную переменную можно выполнив ряд действий (визуально представлено на изображениях ниже):
«Пуск» → пункт «Панель управления» → «Система» → «Изменить параметры» → вкладка «Дополнительно» → «Переменные среды» → в нижнем блоке (Системные переменные) выделяем Переменную «Path» или «PATH» → «Изменить»
В данной переменной уже имеются пути, которые разделены точкой с запятой (;). Вам необходимо добавить в конец переменной свой путь до CLI-модуля, файла «php.exe»,
В моем случае путь это — «C:\php\». (Будьте внимательны, при внесении изменений не удалите текущие значения).
добавим путь до CLI-модуля, файла «php.exe», в переменную «PATH»
Снова выполняем команду с ключем «php —help»
C:\Windows\system32>php --help или C:\Windows\system32>php -h
команда «php» с ключем «—help» покажет справочную информацию
Примеры работы PHP в командной строке
Откроем консоль (желательно от имени администратора) и перейдем к практике.
Рассмотрим два способа запуска PHP-кода:
- Передача PHP-кода напрямую в командной строке
- Указание конкретного файла для запуска
Первый способ. Опция «-r» (или «—run») позволяет выполнять PHP-код, указанный непосредственно в командной строке.
Открывающие и завершающие PHP-теги (<?php и ?>) не нужны.
C:\Windows\system32>php -r "printf(1);" 1
C:\Windows\system32>php -r "printf(1+2);" 3
C:\Windows\system32>php -r "printf('Hello world');" или C:\Windows\system32>php -r "print_r('Hello world');" C:\Windows\system32>php -r "echo 'Hello world';" Hello world
C:\Windows\system32>php -r "var_dump($_SERVER);"
Второй способ. Опция «-f» (или «—file») позволяет исполнять указанный файл. Является не обязательной и может отсутствовать,
достаточно просто указать имя файла.
Исполним индексный файл веб-сервера Apache с расширением «.html»
C:\Windows\system32>php -f C:\Apache24\htdocs\index.html или C:\Windows\system32>php C:\Apache24\htdocs\index.html <html><body><h1>It works!</h1></body></html>
Исполним php скрипт
C:\Windows\system32>php C:\Apache24\htdocs\phpinfo.php
Передаем аргументы php скрипту в консоли
Как и любое другое консольное приложение, PHP может принимает аргументы, а PHP-скрипт также может получать аргументы.
Рассмотрим данную возможность на примере. В корневой директории управления сайтами «C:\Apache24\htdocs» создадим файл «console.php» и внесем в него строки:
<?php // количество аргуметов переданных в консоли echo "The number of array elements \$argv = " . $_SERVER['argc'] . "\n"; // выводим массива аргументов переданных в консоли print_r($_SERVER['argv']); ?>
Исполним php скрипт «console.php» без передачи параметров
C:\Windows\system32>php C:\Apache24\htdocs\console.php The number of array elements \$argv = 1 Array ( [0] => C:\Apache24\htdocs\console.php )
количество аргуметов переданных в консоли равно 1,
этим аргументом является путь до файла «C:\Apache24\htdocs\console.php»
Исполним php скрипт «console.php» с передачей параметров
C:\Windows\system32>php C:\Apache24\htdocs\console.php param1 param2 The number of array elements \$argv = 3 Array ( [0] => C:\Apache24\htdocs\console.php [1] => param1 [2] => param2 )
количество аргуметов переданных в консоли равно 3,
первым аргументом является путь до файла «C:\Apache24\htdocs\console.php»
вторым и третим — param1, param2
Установка composer
Composer (getcomposer.org) — это инструмент для управления зависимостями в PHP. Он позволяет вам объявлять зависимые библиотеки для вашего проекта, устанавливать их и обновлять.
На официальном сайте getcomposer.org есть инструкция по его установке
для «Installation — Linux / Unix / OSX»
и для «Installation — Windows».
Перед скачиванием архива «composer.phar» убедитесь, что в конфигурационном файле «C:\php\php.ini» подключено расширение «php_openssl.dll».
(Для этого раскомментируйте строку «extension=php_openssl.dll»).
для того, чтобы скачать «composer.phar» выполните следующие команды
C:\Windows\system32>cd C:\Apache24\htdocs C:\Apache24\htdocs>php -r "readfile('https://getcomposer.org/installer');" | php #!/usr/bin/env php All setting correct for using Composer Downloading... Composer successfully installed to: C:\Apache24\htdocs\composer.phar Use it: php composer.phar
первой командой перейдем в директорию «C:\Apache24\htdocs»
второй командой скачаем архив «composer.phar» в эту директорию
Перевод:
Все настройки верны для использования Composer
Загрузка…
Composer успешно установлен: C:\Apache24\htdocs\composer.phar
Использовать: php composer.phar
создадим файл «composer.bat»
C:\Apache24\htdocs>echo @php "%~dp0composer.phar" %*>composer.bat
после выполнения данной команды рядом с архивом «composer.phar» появится файл «composer.bat»
теперь находясь в директории где расположены файлы «composer.phar» и «composer.bat» можно выполнить следующие команды
C:\Apache24\htdocs>composer -V Composer version 1.0-dev (xx...xx) 2015-xx-xx xx:xx:xx C:\Apache24\htdocs>composer -h
первая команда выводит версию composer
вторая команда выводит справочную информацию
По итогам изучения данного материала мы осуществили настройку PHP для работы в командной строке, на практике рассмотрели примеры выполнения
PHP-кода и запуска PHP скриптов в командной строке. А также нами был выполнен процесс установки composer`a.