Как запустить файл php через командную строку

Как запустить файл php через командную строку

Выполнение PHP-скриптов из командной строки позволяет тестировать и автоматизировать код без обращения к веб-серверу. Это особенно полезно при написании cron-скриптов, миграций базы данных или CLI-инструментов на PHP. Для запуска необходим установленный интерпретатор PHP, доступный из переменной окружения PATH.

Минимальный синтаксис запуска: php имя_файла.php. При этом важно находиться в каталоге, где расположен файл, или указать полный путь. Пример: php /var/www/project/script.php. Если в системе установлено несколько версий PHP, можно явно указать нужную: /usr/bin/php8.1 script.php.

При передаче аргументов используется массив $argv. Первый элемент массива – имя самого скрипта, последующие – переданные значения. Например: php script.php test 123 создаст массив [‘script.php’, ‘test’, ‘123’]. Количество аргументов можно проверить через $argc.

Если PHP вызывается из оболочки Linux, стоит использовать шебанг в начале файла: #!/usr/bin/env php. После этого можно сделать файл исполняемым командой chmod +x script.php и запускать его напрямую: ./script.php.

Для отладки можно использовать флаги: -l для проверки синтаксиса (php -l script.php) и -d для временного изменения конфигурации, например: php -d memory_limit=512M script.php. Это позволяет тестировать поведение скриптов в разных условиях без редактирования php.ini.

Проверка установленной версии PHP в терминале

Проверка установленной версии PHP в терминале

Откройте терминал и выполните команду php -v. В результате отобразится строка с номером версии, например: PHP 8.2.5 (cli) (built: Apr 12 2023 09:45:23). Эта информация позволяет определить, какая версия интерпретатора используется по умолчанию.

Если команда вызывает ошибку или сообщает об отсутствии PHP, проверьте, установлен ли интерпретатор и прописан ли путь к нему в переменной окружения PATH. На Unix-подобных системах можно использовать which php для определения пути к исполняемому файлу. В Windows – where php.

Если на системе установлено несколько версий PHP, уточнить активную можно через символьные ссылки (например, ls -l /usr/bin/php в Linux) или использовать менеджеры версий, такие как update-alternatives (Debian/Ubuntu) или brew link (macOS при использовании Homebrew).

Настройка переменной среды PATH для доступа к PHP из любой директории

Настройка переменной среды PATH для доступа к PHP из любой директории

Откройте свойства системы: нажмите Win+R, введите sysdm.cpl, перейдите на вкладку «Дополнительно» и нажмите «Переменные среды».

В разделе «Системные переменные» найдите переменную Path и выберите «Изменить».

Нажмите «Создать» и укажите путь к каталогу, где находится исполняемый файл php.exe. Например: C:\php или C:\Program Files\php, в зависимости от места установки.

Сохраните изменения во всех окнах и перезапустите командную строку, чтобы обновить переменные среды.

Проверьте доступность PHP, введя в командной строке php -v. Если путь указан корректно, отобразится версия установленного PHP.

Если используется несколько версий PHP, убедитесь, что нужная директория указана первой в списке путей.

Запуск PHP файла из текущей директории с помощью команды php

Запуск PHP файла из текущей директории с помощью команды php

Откройте терминал и перейдите в нужную директорию с помощью cd. Например:

cd /var/www/project

Убедитесь, что файл имеет расширение .php и доступен для чтения. Для запуска используйте следующую команду:

php имя_файла.php

Если используется php без абсолютного пути, интерпретатор должен быть добавлен в переменную среды PATH. Проверить доступность можно командой:

php -v

При возникновении ошибки «command not found», укажите полный путь к интерпретатору, например:

/usr/bin/php имя_файла.php

php -d display_errors=1 имя_файла.php

Если файл содержит относительные пути, выполнение из другой директории приведёт к ошибкам. Чтобы избежать этого, используйте __DIR__ в скрипте для определения текущей директории выполнения.

Передача аргументов в PHP скрипт через командную строку

Передача аргументов в PHP скрипт через командную строку

Пример запуска: php script.php файл.txt 123 true. Внутри script.php массив $argv будет содержать:


$argv[0] // script.php
$argv[1] // файл.txt
$argv[2] // 123
$argv[3] // true

Количество аргументов доступно через переменную $argc, которая считает все элементы, включая имя файла. В приведённом примере $argc === 4.

Для обработки аргументов с ключами, как в формате --key=value, придётся использовать разбор вручную или подключать библиотеку, например, getopt(). Пример: php script.php --mode=test --limit=5.

Вызов getopt('', ['mode:', 'limit:']) вернёт ассоциативный массив: ['mode' => 'test', 'limit' => '5']. Двоеточие после имени означает, что параметр обязательный. Без двоеточия – флаг без значения.

Массив $argv доступен только при запуске из CLI. В веб-контексте он не определён.

Обработка входных данных в скрипте, запущенном из консоли

Обработка входных данных в скрипте, запущенном из консоли

Для приёма данных в PHP-скрипте, запущенном из терминала, используется массив $argv. В нём хранятся все переданные параметры, включая имя самого файла как первый элемент.

  • $argv[0] – путь к исполняемому файлу.
  • $argv[1] и далее – аргументы, переданные при запуске.

Пример запуска:

php script.php param1 param2

Обработка аргументов может выглядеть так:

if ($argc < 3) {
fwrite(STDERR, "Ожидается минимум 2 параметра\n");
exit(1);
}
$first = $argv[1];
$second = $argv[2];
// Пример приведения типов
$count = (int)$first;
$name = trim($second);

Для парсинга ключей рекомендуется использовать цикл:

$options = [];
for ($i = 1; $i < $argc; $i++) {
if (preg_match('/^--(\w+)=(.+)$/', $argv[$i], $matches)) {
$options[$matches[1]] = $matches[2];
}
}

Обработка таких аргументов:

php script.php --user=admin --limit=10

Результат:

$options['user']  => 'admin'
$options['limit'] => '10'

Для чтения из stdin:

$input = stream_get_contents(STDIN);

Полезно при передаче данных через пайп:

cat data.txt | php script.php

Рекомендации:

  1. Проверять количество и формат аргументов перед выполнением основной логики.
  2. При необходимости считывать большие объёмы данных – использовать потоковую обработку через STDIN.
  3. Всегда обрабатывать некорректный ввод: пустые значения, неверные типы, неизвестные ключи.

Простой пример:



При выполнении такого скрипта в командной строке, результатом будет строка: Hello, World!.



Результат будет включать тип переменной и её содержимое:

array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }


Запуск PHP файла с указанием абсолютного или относительного пути

Запуск PHP файла с указанием абсолютного или относительного пути

Запуск PHP файла через командную строку требует точного указания пути к файлу. Важно понимать разницу между абсолютным и относительным путём, так как это влияет на корректность выполнения скрипта.

Абсолютный путь – это полный путь к файлу от корня файловой системы. Пример для Linux или macOS: /var/www/html/script.php. В Windows абсолютный путь будет выглядеть как C:\xampp\htdocs\script.php. При использовании абсолютного пути можно запускать файл из любой директории, так как путь не зависит от текущего положения в файловой системе.

Относительный путь указывается относительно текущей директории, в которой вы находитесь в момент выполнения команды. Например, если вы находитесь в папке /var/www, а файл находится в /var/www/html/script.php, относительный путь будет html/script.php. Для Windows пример будет: htdocs\script.php. Важно, чтобы относительный путь был указан верно относительно места, где запускается команда.

Для запуска PHP файла с абсолютным путём используется команда:

php /путь/к/файлу/script.php.

Для относительного пути команда будет такой:

php ./script.php, если файл находится в текущей папке, или
php html/script.php, если файл в подпапке.

Необходимо помнить, что при работе с относительными путями важно учитывать, в какой директории выполняется команда, иначе PHP не сможет найти файл. Для диагностики ошибок в таких случаях можно использовать команду pwd (Linux/macOS) или cd (Windows) для проверки текущей директории.

Вопрос-ответ:

Как запустить PHP файл через командную строку в Windows?

Для того чтобы запустить PHP файл через командную строку в Windows, необходимо выполнить несколько шагов. Во-первых, убедитесь, что PHP установлен на вашем компьютере и добавлен в переменную среды PATH. Для этого откройте командную строку и введите команду `php -v`. Если PHP установлен корректно, вы увидите его версию. Затем откройте командную строку, перейдите в каталог, где находится ваш PHP файл, используя команду `cd`. После этого выполните команду `php название_файла.php`. Если все сделано правильно, файл будет исполнен, и вы увидите результаты в командной строке.

Что делать, если команда `php` не распознается в командной строке?

Если команда `php` не распознается в командной строке, это означает, что PHP не добавлен в системную переменную PATH. Чтобы исправить эту проблему, нужно добавить путь к директории с PHP в переменную окружения. Для этого выполните следующие действия: откройте "Свойства системы" (правая кнопка по "Этот компьютер" > "Свойства" > "Дополнительные параметры системы"), затем нажмите "Переменные среды". В разделе "Системные переменные" найдите переменную `Path`, выберите её и нажмите "Изменить". Добавьте путь к папке, где установлен PHP (например, `C:\php`), и сохраните изменения. После этого откройте новую командную строку и проверьте команду `php -v`. Если все сделано правильно, PHP будет доступен для выполнения в командной строке.

Ссылка на основную публикацию