This section contains notes and hints specific to getting PHP running
from the command line for Windows.
Note:
You should read the manual
installation steps first!
Getting PHP to run from the command line can be performed without making
any changes to Windows.
C:\php\php.exe -f "C:\PHP Scripts\script.php" -- -arg1 -arg2 -arg3
But there are some easy steps that can be followed to make this simpler.
Some of these steps should already have been taken, but are repeated here
to be able to provide a complete step-by-step sequence.
-
Append the location of the PHP executable (php.exe,
php-win.exe or php-cli.exe
depending upon your PHP version and display preferences) to the
PATH environment variable. Read more about how to
add your PHP directory to PATH in the corresponding FAQ entry. -
Append the
.PHP
extension to the
PATHEXT environment variable. This can be done
at the same time as amending the PATH environment
variable. Follow the same steps as described in the FAQ but amend the
PATHEXT environment variable rather than the
PATH environment variable.Note:
The position in which you place the
.PHP
will
determine which script or program is executed when there are matching
filenames. For example, placing.PHP
before
.BAT
will cause your script to run, rather than
the batch file, if there is a batch file with the same name. -
Associate the
.PHP
extension with a file type. This
is done by running the following command: -
Associate the
phpfile
file type with the appropriate
PHP executable. This is done by running the following command:ftype phpfile="C:\php\php.exe" -f "%1" -- %~2
Note:
Both PATH and PATHEXT are important
pre-existing system variables in Windows,
and care should be taken to not overwrite either variable,
only to add to them.
Following these steps will allow PHP scripts to be run from any directory
without the need to type the PHP executable or the .PHP
extension and all parameters will be supplied to the script for processing.
The example below details some of the registry changes that can be made manually.
Example #1 Registry changes
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"
With these changes the same command can be written as:
"C:\PHP Scripts\script" -arg1 -arg2 -arg3
or, if your "C:\PHP Scripts"
path is in the
PATH environment variable:
Note:
There is a small problem if you intend to use this technique and use your
PHP scripts as a command line filter, like the example below:dir | "C:\PHP Scripts\script" -arg1 -arg2 -arg3or
dir | script -arg1 -arg2 -arg3You may find that the script simply hangs and nothing is output.
To get this operational, you need to make another registry change.Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer] "InheritConsoleHandles"=dword:00000001Further information regarding this issue can be found in this » Microsoft
Knowledgebase Article : 321788.
As of Windows 10, this setting seems to be reversed, making the default install of
Windows 10 support inherited console handles automatically. This »
Microsoft forum post provides the explanation.
vechenjivot at gmail dot com ¶
7 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
pimroes at gmail dot com ¶
12 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 ¶
7 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".
elhadjouattara at gmail dot thrcom ¶
8 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
Как запустить PHP скрипт в командной строке Windows
Для запуска PHP в командной строке необязательно устанавливать веб-сервер, достаточно скачать и распаковать архив с PHP интерпретатором. О том, где скачать PHP с официального сайта и как разобраться с версиями, смотрите эту статью.
Если вы часто будете запускать PHP скрипты из командной строки Windows, то настоятельно рекомендуется Добавить путь до PHP в переменную окружения PATH в Windows. Благодаря этому не придётся каждый раз указывать полный путь до файла php.exe.
Теперь, когда PHP установлен и путь до php.exe добавлен в переменную окружения Windows, открываем командную строку, для этого нажмите сочетание клавиш Win+x и выберите Windows PowerShell.
Для проверки, что нормально установилось, посмотрим справку по PHP:
php -h
На самом деле, мы запускаем файл php.exe, но расширение можно отбросить. То есть предыдущая запись эквивалентна
php.exe -h
Как запустить .php скрипт в командной строке Windows и Linux
Для запуска .php файла в консоли Windows используется следующая команда:
php -f путь\до\файла.php
Опцию -f можно отбросить, то есть предыдущая и следующая команды равнозначны:
php путь\до\файла.php
Я создал тестовый файл, который расположен по пути C:\Users\Alex\Documents\PHP\test.php тогда я могу запустить его в PHP так:
php -f C:\Users\Alex\Documents\PHP\test.php
или так:
php C:\Users\Alex\Documents\PHP\test.php
Для передачи скрипту аргументов, перечислите их после имени файла, разделяя пробелом. Если сами аргументы содержат пробелы или другие символы, которые имеют особое значение для оболочки командной строки, то поместите эти аргументы и одинарные или двойные кавычки.
php путь\до\файла.php 'аргумент1' 'аргумент2' 'аргумент3' 'аргумент_n'
Пример запуска PHP скрипта с тремя аргументами:
php C:\Users\Alex\Documents\PHP\test.php 'Alex' 'hackware.ru' 'Admin'
Как в PHP скрипте обратиться к аргументам
Переданные аргументы содержаться в массиве $argv. Причём, порядковый номер аргумента соответствует номеру в массиве. То есть первый аргумент будет помещён в $argv[1], второй в $argv[2] и так далее.
Самый первый элемент массива $argv[0] содержит полный путь до запускаемого скрипта.
Содержимое файла test.php:
<?php echo 'Name: ' . $argv[1] . PHP_EOL; echo 'Web site: ' . $argv[2] . PHP_EOL; echo 'Status: ' . $argv[3] . PHP_EOL;
Запустим его и передадим в скрипт три аргумента:
php C:\Users\Alex\Documents\PHP\test.php 'Alex' 'hackware.ru' 'Admin'
Как в PHP получить данные от пользователя в консоли
Благодаря передаваемым аргументам, скрипт может выполнять действия не только с прописанными в нём данными, но и с другими значениями, указанными при запуске скрипта.
Кстати, при работе в окружении веб-сервера, то есть когда PHP скрипт выполняет задачи для веб-сайта, возможность передать ему аргументы реализована с помощью HTTP методов GET и POST. Эти аргументы передаются перед запуском скрипта, и уже после запуска PHP скрипта новые данные отправить нельзя — нужно ждать завершения работы программы, и при необходимости запустить её ещё раз с новыми данными.
Во время работы скрипта может потребоваться ввод новых данных, в консоли это достигается с помощью строки запроса, в которую пользователь может ввести значение и нажать Enter для передачи его скрипту. В контексте веб-сайта такой возможности — передать данные уже во время выполнения скрипта — нет. То есть консольный запуск PHP скриптов с аргументами не только проще (не нужно возиться с HTML формой), но и даже более гибкий.
В PHP для запроса пользователю используется функция readline.
Эта функция одинаково работает и на Windows и на Linux. Причём на Linux она имеет интерактивные возможности Bash, например, сохраняет историю ввода, к которой можно вернуться с помощью стрелок. На Windows эта возможность появилась начиная с PHP 7.1.
Если сильно надо, можно настроить автозавершение вводимых данных. Все функции GNU Readline рассмотрены здесь. Я же коснусь только readline, которая считывает введённую пользователем строку. С этой функцией можно указать один опциональный аргумент — строку, которая будет показана пользователю в приглашении.
Пример консольного PHP скрипта, которые запрашивает у пользователя данные в приглашении командной строки:
<?php $len_min = readline("Минимальное количество символов в пароле: "); $len_max = readline("Максимальное количество символов в пароле: "); $base = readline("Основа пароля (0 - цифры; 1 - маленькие буквы; 2 - большие буквы): "); echo "Полученные исходные данные: \r\nДлина пароля от $len_min до $len_max символов "; switch ($base) { case 0: echo "и основой пароля являются цифры."; break; case 1: echo "и основой пароля являются маленькие буквы."; break; case 2: echo "и основой пароля являются большие буквы."; break; }
Выполнение команд PHP в интерактивном режиме
Если вам это нужно, то можно работать с интерпретатором PHP в интерактивном режиме, вводя код построчно. При этом код выполняется после нажатия кнопки Enter, но значения переменных сохраняются в рамках одной сессии. То есть вы можете присвоить значение какой-либо переменной, а затем использовать его в других строках.
Для запуска интерактивного шелла:
php -a
Запуск отдельных команд PHP
Для выполнения отдельных команд используйте опцию -r:
php -r 'echo 2**100;'
Связанные статьи:
- Как подключить PHP к Apache на Windows (100%)
- Установка Apache, PHP, MySQL и phpMyAdmin на Windows XP (100%)
- Для чего нужен веб-сервер Apache (100%)
- Готовая сборка Apache для Windows XP (100%)
- Как добавить путь до PHP в переменную окружения PATH в Windows (100%)
- Модули Apache mods (RANDOM — 50%)
Для выполнения PHP скриптов обычно используются веб-серверы, но иногда может возникнуть необходимость запустить PHP-скрипт непосредственно из командной строки, без использования веб-сервера. Это может быть полезно для отладки или автоматизации задач.
В этой статье мы рассмотрим, как запустить PHP-скрипт без веб-сервера на операционных системах Linux и Windows.
Как запустить PHP-скрипт в командной строке Linux
- Откройте терминал.
- Убедитесь, что PHP установлен на вашей системе. Введите следующую команду, чтобы проверить установку и получить версию PHP:
php -v
Если интерпретатор-PHP не установлен, выполните следующую команду, чтобы установить его:
Ubuntu/Debian:
sudo apt-get install php
CentOS:
sudo yum install php
- Создайте PHP-скрипт, используя консольный текстовый редактор, например, «nano» или «vim». Для создания нового скрипта с именем «script.php», выполните следующую команду:
nano script.php
- В открывшемся редакторе введите PHP-код для вашего скрипта. Например:
php
<?php
echo «Hello, World!»;
?>
- Сохраните скрипт и закройте редактор.
- Теперь вы можете запустить созданный PHP-скрипт. Введите следующую команду в терминале:
php script.php
Готово! Вы успешно запустили PHP-скрипт в командной строке Linux. В данном случае, на экране появится вывод «Hello, World!».
Этот подход можно также использовать для выполнения более сложных скриптов и автоматизации различных задач в Linux-среде.
Как запустить PHP скрипт в командной строке Windows
Вы можете запустить PHP в командной строке, не устанавливая веб-сервер. Достаточно просто работать через PHP-интерпретатор.
- Откройте командную строку в Windows. Для этого зажмите сочетание клавиш Win+R, введите «cmd» и нажмите Enter.
- Убедитесь, что PHP установлен в вашей системе. Чтобы проверить наличие PHP в системе и узнать установленную версию, введите:
php -v
Если PHP не установлен, загрузите и установите его с официального сайта PHP.
Важно! На момент написания нашего руководства релевантная версия PHP – 8.2. Вы же можете установить ту, которая будет актуальна для вас. Всегда выбирайте версию «Thread Safe».
Загрузите соответствующий установщик PHP для Windows и следуйте инструкциям по установке.
- Создайте PHP-скрипт, используя любой текстовый редактор. В данной инструкции мы воспользуемся Блокнотом.
Для создания нового скрипта с именем «script.php», выполните следующую команду:
notepad script.php
- В открывшемся редакторе введите PHP-код для вашего скрипта. Например:
php
<?php
echo «Hello, World!»;
?>
- Сохраните скрипт и закройте редактор.
- Теперь вы можете запустить PHP-скрипт. В командной строке пропишите команду:
php script.php
Готово! Вы успешно запустили PHP-скрипт в командной строке Windows. В данном случае, на экране появится вывод «Hello, World!».
Вы можете использовать этот подход для выполнения более сложных скриптов и автоматизации различных задач в среде Windows.
Различные опции запуска PHP-скриптов в командной строке
Опции запуска PHP скриптов в командной строке предоставляют собой различные возможности и параметры для управления выполнением скриптов. Запустив команду php -h можно ознакомиться со следующими опциями:
Опция |
Полное название |
Функция |
-a |
—interactive |
Запускает PHP в интерактивном режиме. |
-c |
—php-ini |
Указывает каталог, где находится файл php.ini. |
-n |
—no-php-ini |
Ставит задачу не использовать php.ini |
-d |
—define |
Задаёт пользовательское значение для каждой конфигурационной опции php.ini. |
-e |
—profile-info |
Генерирует расширенную информацию для отладчика/профайлера. |
-f |
—file |
Разбирает и выполняет указанный файл. |
-h и -? |
—help и —usage |
Предоставляет справку доступных опций. |
-i |
—info |
Выводит информацию о PHP. |
-l |
—syntax-check |
Проверяет синтаксис кода. |
-m |
—modules |
Показывает встроенные и загруженные модули. |
-r |
—run |
Выполняет PHP-код без использования тегов скрипта. |
-B |
—process-begin |
Выполняет PHP-код перед обработкой входных строк. |
-R |
—process-code |
Выполняет PHP-код для каждой входной строки. |
-F |
—process-file |
Разбирает и выполняет указанный PHP-файл для каждой входной строки. |
-E |
—process-end |
Выполняет PHP-код после обработки всех входных строк. |
-S |
—server |
Запускает встроенный веб-сервер. |
-t |
—docroot |
Указывает корневой каталог документов для встроенного веб-сервера. |
-s |
—syntax-highlight и —syntax-highlighting |
Выводит исходный код с подсветкой синтаксиса HTML. |
-v |
—version |
Указывает номер версии. |
-w |
—strip |
Выводит исходный код без комментариев и пробелов. |
-z |
—zend-extension |
Загружает расширение Zend. |
не задано |
—ini |
Показывает имена конфигурационных файлов. |
—rf |
—rfunction |
Предоставляет информацию об указанной функции. |
—rc |
—rclass |
Предоставляет информацию об указанном классе. |
—re |
—rextension |
Предоставляет информацию об указанном расширении (модуле). |
—rz |
—rzendextension |
Предоставляет информацию об указанном модуле Zend. |
—ri |
—rextinfo |
Предоставляет информацию о конфигурации заданного модуля. |
Больше о существующих опциях вы можете узнать из официальной документации PHP.
Как проверить синтаксис PHP-скрипта с помощью опции -l
Как мы уже рассмотрели выше, при использовании опции -l можно проверить синтаксис кода PHP, чтобы убедиться, что он не содержит ошибок и соответствует правилам.
Для этого способа не требуется запуск скрипта, – проверка будет произведена внутри командной строки.
Общий синтаксис:
php -l путь/к/файлу/.php
Пример использования:
php -l C:/Users/Nicru/Documents/PHP/script.php
В результате выполнения команды будет выведено сообщение о том, является ли синтаксис скрипта корректным или же есть ошибки, которые необходимо исправить.
Если всё верно, вы получите следующий вывод:
No syntax errors detected in C:/Users/Nicru/Documents/PHP/script.php
Если в синтаксисе есть ошибки:
php -l C:/Users/Nicru/Documents/PHP/script.php
PHP Parse error: syntax error, unexpected end of file in C:/Users/Nicru/Documents/PHP/script.php on line 8
Parse error: syntax error, unexpected end of file in C:/Users/Nicru/Documents/PHP/script.php on line 8
Errors parsing C:/Users/Nicru/Documents/PHP/script.php
Иными словами, опция -l – это крайне полезная возможность для обнаружения и устранения ошибок в PHP-коде до его фактического выполнения.
Как запустить PHP-файл в командной строке Windows и Linux
Как в Windows, так и в Linux для запуска .php файла в командной строке, вы можете использовать следующие команды:
php -f путь/к/файлу.php
Вы также можете опустить опцию «-f», так предыдущая и следующая команды останутся равнозначны:
php путь/к/файлу.php
Например, если у вас есть файл, расположенный в директории «C:/Users/Nicru/Documents/PHP/script.php», вы можете запустить его в PHP с помощью следующих команд:
php -f C:/Users/Nicru/Documents/PHP/script.php
Или!
php C:/Users/Nicru/Documents/PHP/script.php
Таким образом, вы можете без особых усилий запускать PHP-скрипты в командной строке как в Windows, так и в Linux, используя соответствующие команды и указывая путь к файлу .php, который вы хотите выполнить.
Как в PHP-скрипте обратиться к аргументам
В PHP вы можете обратиться к аргументам, переданным скрипту, с помощью специального массива $argv. Этот массив содержит значения аргументов командной строки, переданных при запуске скрипта.
Каждый элемент массива $argv соответствует отдельному аргументу, где $argv[0] содержит имя самого скрипта, а $argv[1], $argv[2] и прочие содержат значения последующих аргументов.
Например, если у вас есть PHP-скрипт «script.php», который запускается с аргументами командной строки, вы можете получить доступ к этим аргументам следующим образом:
<?php
$argc = count($argv);
if ($argc > 0) {
for ($i = 1; $i < $argc; $i++) {
echo «Аргумент $i: » . $argv[$i] . «\n»;
}
}
?>
Таким образом, вы можете обратиться к аргументам командной строки в PHP скрипте, используя массив «$argv», и выполнять операции на основе переданных значений аргументов.
Запуск отдельных команд PHP
В командной строке вы также можете запускать отдельные команды PHP, не используя целый PHP-скрипт.
Запускать отдельные команды PHP можно с помощью опции -r (или —run). Она позволяет передавать PHP-код непосредственно в командную строку.
Вот как это работает:
Введите следующую команду:
php -r ‘код’
Где «код» – это PHP-код, который вы хотите выполнить. Например, для вывода строки «Hello, World!» вы можете использовать:
php -r ‘echo ‘Hello, World!’;’
После ввода команды и нажатия Enter, PHP выполнит указанный код и выведет результат в командной строке. В данном примере, результатом будет строка «Hello, World!».
Вы можете смело использовать этот метод для запуска отдельных команд PHP в командной строке. Он может быть особенно полезным, когда вам необходимо выполнить небольшую часть кода или провести быструю проверку функциональности без создания отдельного файла.
Заключение
Запуск PHP скриптов в командной строке без веб-сервера является удобным способом выполнения PHP-кода для отладки, автоматизации задач и выполнения различных сценариев. В этой статье мы рассмотрели, как запустить PHP скрипт в командной строке Linux и Windows, а также ознакомились с опциями запуска PHP-скриптов и запуском отдельных команд PHP.
Теперь вы можете использовать этот гибкий способ работы с PHP в вашей системе.
I am trying to learn how to access PHP scripts from the command line (CLI)
Below is an image from my attempt, please help. I am running Windows 7
asked Sep 5, 2011 at 11:41
JasonDavisJasonDavis
48.3k100 gold badges318 silver badges537 bronze badges
You need to add your PHP installation directory to the %PATH%
environment variable, or work from the PHP installation directory.
To add it to path (The best approach — Edited for Windows 7):
- Right-click on a
My Computer
icon - Click
Properties
- Click
Advanced system settings
from the left nav - Click
Advanced
tab - Click
Environment Variables
button - In the
System Variables
section, selectPath
(case-insensitive) and clickEdit
button - Add a semi-colon (
;
) to the end of the string, then add the full file system path of your PHP installation (e.g.C:\Program Files\PHP
) - Keep clicking
OK
etc until all dialog boxes have disappeared - Close your command prompt and open it again
- Sorted
Alternatively, you can run cd <PHP installation path>
before you try and run you command, or call your script like <FULL file system path of php.exe> <path to script>
answered Sep 5, 2011 at 11:44
DaveRandomDaveRandom
88k11 gold badges155 silver badges174 bronze badges
5
For temporary use, try this: (benefit for use npm
or composer
)
> SET PATH=c:\wamp\bin\php\php5.3.29\;%PATH%
For test use this:
> echo %PATH%
c:\wamp\bin\php\php5.3.29\;c:\anothers\;
Now you can access to PHP
command:
> php -v
PHP 5.3.29 (cli)
answered May 17, 2018 at 2:29
1
Easy Way: Run CMD then type
C:\wamp\bin\php\php5.4.3\php.exe -f "C:\wamp\www\timenow.php"
Change the last part for a different script, and make sure you have the same version php folder as I do. (php5.4.3)
answered Feb 3, 2014 at 16:02
Mikeys4uMikeys4u
1,51418 silver badges26 bronze badges
1
On 2020 and with Windows 10 there’s an easier way to achieve this.
1- Download composer at https://getcomposer.org/Composer-Setup.exe
2- Install it as you install any program on windows and (important) when it asks you the path to PHP, browse thru the correct path (for example: c:/wamp/bin/php.exe)
FINNISHED! Close the cmd and reopen and you can run PHP on your command line and also COMPOSER (composer is actually very needed if you use PHP)
answered Jul 4, 2020 at 21:24
gtamborerogtamborero
2,94827 silver badges30 bronze badges
you can run cd before you try and run you command, or call your script like
answered Dec 16, 2021 at 4:18
В данном материале мы рассмотрим такие вопросы как: настройка 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.