Список опций командной строки

Список опций командной строки, предоставляемых PHP, могут быть получены в любой момент, запустив PHP с ключом -h:

 Usage: php [options] [-f] <file> [--] [args...] php [options] -r <code> [--] [args...] php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...] php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...] php [options] -- [args...] php [options] -a -a Run interactively -c <path>|<file> Look for php.ini file in this directory -n No php.ini file will be used -d foo[=bar] Define INI entry foo with value 'bar' -e Generate extended information for debugger/profiler -f <file> Parse and execute <file>. -h This help -i PHP information -l Syntax check only (lint) -m Show compiled in modules -r <code> Run PHP <code> without using script tags <?..?> -B <begin_code> Run PHP <begin_code> before processing input lines -R <code> Run PHP <code> for every input line -F <file> Parse and execute <file> for every input line -E <end_code> Run PHP <end_code> after processing all input lines -H Hide any passed arguments from external tools. -S <addr>:<port> Run with built-in web server. -t <docroot> Specify document root <docroot> for built-in web server. -s Output HTML syntax highlighted source. -v Version number -w Output source with stripped comments and whitespace. -z <file> Load Zend extension <file>. args... Arguments passed to script. Use -- args when first argument starts with - or script is read from stdin --ini Show configuration file names --rf <name> Show information about function <name>. --rc <name> Show information about class <name>. --re <name> Show information about extension <name>. --rz <name> Show information about Zend extension <name>. --ri <name> Show configuration for extension <name>. 

Опции, доступные из командной строки
ОпцияПолное названиеОписание
-a--interactive

Запустить PHP в интерактивном режиме. Для получения дополнительной информации смотрите раздел Интерактивная консоль.

-b--bindpath

Путь связывания библиотек (Bind Path) для внешнего режима FASTCGI Server (только для CGI).

-C--no-chdir

Не менять текущую директорию на директорию скрипта (только для CGI).

-q--no-header

Тихий режим. Подавляет вывод заголовков HTTP (только для CGI).

-T--timing

Измерить время выполнения скрипта, повторенного count раз (только для CGI).

-c--php-ini

Указывает, либо директорию, в которой нужно искать конфигурационный файл php.ini, либо пользовательский INI-файл (название которого может отличаться от стандартного php.ini), например:

 $ php -c /custom/directory/ my_script.php $ php -c /custom/directory/custom-file.ini my_script.php 

Если эта опция не указана, поиск php.ini будет осуществлён в местах по умолчанию.

-n--no-php-ini

Полностью игнорировать php.ini.

-d--define

Устанавливает пользовательское значение для каждой из конфигурационных опций, доступных в php.ini. Синтаксис выглядит следующим образом:

 -d configuration_directive[=value] 

Пример #1 Пример команды с параметром -d для установки INI-настройки

 # Если значение опустили, соответствующей опции присвоится значение "1" $ php -d max_execution_time -r '$foo = ini_get("max_execution_time"); var_dump($foo);' string(1) "1" # Указание пустого значения установит соответствующую опцию значением "" php -d max_execution_time= -r '$foo = ini_get("max_execution_time"); var_dump($foo);' string(0) "" # Конфигурационная переменная будет установлена любым значением, указанным после символа '=' $ php -d max_execution_time=20 -r '$foo = ini_get("max_execution_time"); var_dump($foo);' string(2) "20" $ php -d max_execution_time=doesntmakesense -r '$foo = ini_get("max_execution_time"); var_dump($foo);' string(15) "doesntmakesense" 
-e--profile-info

Включить режим расширенной информации, используемый отладчиком/профайлером.

-f--file

Парсит и исполняет файл, указанный в опции -f. Этот параметр необязателен и может быть опущен — достаточно просто указать имя запускаемого файла.

-h и -?--help и --usage Выводит список опций командной строки с однострочным описанием того, что они делают.
-i--info Вызывает phpinfo() и выводить её результат. В случае, если PHP работает некорректно, рекомендуется выполнить php -i и посмотреть, выводятся ли сообщения об ошибках до или вместо информационных таблиц. Учитывайте, что в случае использования CGI-модуля весь вывод будет в формате HTML и, как следствие, очень большим.
-l--syntax-check

Предоставляет удобный способ для проверки заданного PHP-кода на наличие синтаксических ошибок. В случае успешной проверки будет напечатана следующая фраза: "No syntax errors detected in <filename>", а код возврата будет равен 0. При неудачной проверке будет выведено "Errors parsing <filename>" вместе с внутренними сообщениями парсера, а код возврата будет равен -1.

Данная опция не будет обнаруживать фатальные ошибки (например, вызов неопределённых функций). Используйте опцию -f, если вы хотите проверить код на наличие фатальных ошибок.

Замечание:

Эта опция не работает с опцией -r.

-m--modules

Пример #2 Вывод встроенных (и загруженных) модулей PHP и Zend

 $ php -m [PHP Modules] xml tokenizer standard session posix pcre overload mysql mbstring ctype [Zend Modules] 
-r--run

Позволяет выполнять PHP-код, указанный непосредственно в командной строке. Открывающие и закрывающие PHP-теги (<?php и ?>) не нужны и будут приводит к синтаксической ошибке, если они присутствуют.

Замечание:

При использовании этого ключа следует быть очень осторожным и избегать недоразумений, связанных с автоматической подстановкой переменных окружения.

Пример #3 Ошибка синтаксиса при использовании двойных кавычек

 $ php -r "$foo = get_defined_constants();" PHP Parse error: syntax error, unexpected '=' in Command line code on line 1 Parse error: syntax error, unexpected '=' in Command line code on line 1 

Проблема здесь заключается в том, что sh/bash выполняет автоматическую подстановку переменных в случае, если используются двойные кавычки ("). Поскольку переменная $foo вряд ли определена, она заменяется пустой строкой, что приводит к тому, что передаваемый PHP-код для выполнения выглядит следующим образом:

 $ php -r " = get_defined_constants();" 

Правильным решением в данном случае будет использование одинарных кавычек ', поскольку автоматическая подстановка переменных, заключённых в одинарные кавычки, в sh/bash не происходит.

Пример #4 Использование одинарных кавычек для предотвращения подстановки переменных в консоли

 $ php -r '$foo = get_defined_constants(); var_dump($foo);' array(370) { ["E_ERROR"]=> int(1) ["E_WARNING"]=> int(2) ["E_PARSE"]=> int(4) ["E_NOTICE"]=> int(8) ["E_CORE_ERROR"]=> [...] 

При использовании оболочки, отличной от sh/bash, могут возникнуть другие проблемы. В таком случае необходимо создать отчёт о возникшей ошибке на сайте » https://github.com/php/php-src/issues. Можно столкнуться с проблемами при попытке получить доступ к переменным оболочки или при работе с экранирующими обратными слешами. Теперь вы предупреждены!

Замечание:

Ключ -r доступен в CLISAPI, но недоступен в CGISAPI.

Замечание:

Эта опция предназначена только для самого простого кода. Поэтому некоторые конфигурационные директивы (например, auto_prepend_file и auto_append_file) в этом режиме будут проигнорированы.

-B--process-begin

Выполняемый код PHP перед обработкой потока ввода (stdin).

-R--process-code

PHP-код, выполняемый для каждой строки ввода.

В этом режиме есть две специальные переменные: $argn и $argi. $argn содержит строку, которую PHP обрабатывает в данный момент, а $argi содержит номер этой строки.

-F--process-file

PHP-файл, выполняемый для каждой строки ввода.

-E--process-end

PHP-код, выполняемый после обработки ввода.

Пример #5 Использование опций -B, -R и -E для подсчёта количества строк в проекте.

 $ find my_proj | php -B '$l=0;' -R '$l += count(@file($argn));' -E 'echo "Всего строк: $l\n";' Всего строк: 37328 
-S--server

Запускает встроенный веб-сервер.

-t--docroot Указывает корень документа для встроенного веб-сервера.
-s--syntax-highlight и --syntax-highlighting

Показать исходный код с подсветкой синтаксиса.

Эта опция использует внутренний механизм для разбора файла и записи в стандартный поток вывода подсвеченной версии этого файла. Учтите, что все что она делает, это генерирует блок <code> [...] </code> HTML-тегов, без HTML-заголовков.

Замечание:

Эта опция несовместима с опцией -r.

-v--version

Пример #6 Использование -v для получения типа SAPI и версии PHP и Zend

 $ php -v PHP 5.3.1 (cli) (built: Dec 11 2009 19:55:07) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies 
-w--strip

Показать исходный код без комментариев и пробелов.

Замечание:

Эта опция несовместима с опцией -r.

-z--zend-extension

Загружает модуль Zend. Если передано только имя файла, PHP попытается загрузить этот модуль из пути библиотек по умолчанию (обычно указывается в /etc/ld.so.conf в системах Linux). Передача файла с абсолютным путём не будет использовать системный путь поиска библиотеки. Относительное имя файла, содержащее директорию, укажет PHP подгрузить модуль относительно текущей директории.

 --ini

Показывает имена конфигурационных файлов и отсканированные директории.

Пример #7 Пример --ini

$ php --ini Configuration File (php.ini) Path: /usr/dev/php/5.2/lib Loaded Configuration File: /usr/dev/php/5.2/lib/php.ini Scan for additional .ini files in: (none) Additional .ini files parsed: (none)
--rf--rfunction

Показывает информацию об указанной функции или методе класса (например, количество и названия параметров).

Эта опция доступна только в том случае, если PHP был скомпилирован с поддержкой Reflection.

Пример #8 Базовое использование --rf

$ php --rf var_dump Function [ <internal> public function var_dump ] { - Parameters [2] { Parameter #0 [ <required> $var ] Parameter #1 [ <optional> $... ] } }
--rc--rclass

Показывает информацию об указанном классе (список констант, свойств и методов).

Эта опция доступна только в том случае, если PHP был скомпилирован с поддержкой Reflection.

Пример #9 Пример --rc

$ php --rc Directory Class [ <internal:standard> class Directory ] { - Constants [0] { } - Static properties [0] { } - Static methods [0] { } - Properties [0] { } - Methods [3] { Method [ <internal> public method close ] { } Method [ <internal> public method rewind ] { } Method [ <internal> public method read ] { } } }
--re--rextension

Показывает информацию об указанном модуле (список опций php.ini, определённых функций, констант и классов).

Эта опция доступна только в том случае, если PHP был скомпилирован с поддержкой Reflection.

Пример #10 Пример --re

$ php --re json Extension [ <persistent> extension #19 json version 1.2.1 ] { - Functions { Function [ <internal> function json_encode ] { } Function [ <internal> function json_decode ] { } } }
--rz--rzendextension

Показывает информацию о конфигурации указанного Zend-модуля (та же информация, которая возвращается phpinfo()).

--ri--rextinfo

Показывает информацию о конфигурации указанного модуля (та же информация, которая возвращается phpinfo()). Конфигурацию ядра можно узнать, указав в качестве имени модуля значение "main".

Пример #11 Пример --ri

$ php --ri date date date/time support => enabled "Olson" Timezone Database Version => 2009.20 Timezone Database => internal Default timezone => Europe/Oslo Directive => Local Value => Master Value date.timezone => Europe/Oslo => Europe/Oslo date.default_latitude => 59.930972 => 59.930972 date.default_longitude => 10.776699 => 10.776699 date.sunset_zenith => 90.583333 => 90.583333 date.sunrise_zenith => 90.583333 => 90.583333

Замечание:

Опции -rBRFEH, --ini и --r[fcezi] доступны только в CLI.

To Top