Php cli командная строка
Список опций командной строки, предоставляемых PHP, могут быть получены в любой момент, запустив PHP с ключом -h:
Usage: php [options] [-f] [--] [args. ] php [options] -r [--] [args. ] php [options] [-B ] -R [-E ] [--] [args. ] php [options] [-B ] -F [-E ] [--] [args. ] php [options] -- [args. ] php [options] -a -a Run interactively -c | 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 Parse and execute . -h This help -i PHP information -l Syntax check only (lint) -m Show compiled in modules -r Run PHP without using script tags -B Run PHP before processing input lines -R Run PHP for every input line -F Parse and execute for every input line -E Run PHP after processing all input lines -H Hide any passed arguments from external tools. -S : Run with built-in web server. -t Specify document root for built-in web server. -s Output HTML syntax highlighted source. -v Version number -w Output source with stripped comments and whitespace. -z Load Zend extension . args. Arguments passed to script. Use -- args when first argument starts with - or script is read from stdin --ini Show configuration file names --rf Show information about function . --rc Show information about class . --re Show information about extension . --rz Show information about Zend extension . --ri Show configuration for extension .
Запустить PHP в интерактивном режиме. Для получения дополнительной информации смотрите раздел Интерактивная консоль.
Путь связывания библиотек (Bind Path) для внешнего режима FASTCGI Server (только для CGI ).
Не менять текущую директорию на директорию скрипта (только для CGI ).
Тихий режим. Подавляет вывод заголовков HTTP (только для CGI ).
Измерить время выполнения скрипта, повторенного count раз (только для CGI ).
Указывает, либо директорию, в которой нужно искать конфигурационный файл php.ini , либо пользовательский INI -файл (название которого может отличаться от стандартного php.ini ), например:
$ php -c /custom/directory/ my_script.php $ php -c /custom/directory/custom-file.ini my_script.php
Если эта опция не указана, поиск php.ini будет осуществлён в местах по умолчанию.
Полностью игнорировать php.ini .
Устанавливает пользовательское значение для каждой из конфигурационных опций, доступных в php.ini . Синтаксис выглядит следующим образом:
-d configuration_directive[=value]
# Если значение опущено, то соответствующей опции будет присвоено значение "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"
Включить режим расширенной информации, используемый отладчиком/профайлером.
Парсит и исполняет файл, указанный в опции -f. Этот параметр необязателен и может быть опущен — достаточно просто указать имя запускаемого файла.
Предоставляет удобный способ для проверки заданного PHP-кода на наличие синтаксических ошибок. В случае успешной проверки будет напечатана следующая фраза: » No syntax errors detected in «, а код возврата будет равен 0 . При неудачной проверке будет выведено » Errors parsing » вместе с внутренними сообщениями парсера, а код возврата будет равен -1 .
Данная опция не будет обнаруживать фатальные ошибки (например, вызов неопределённых функций). Используйте опцию -f, если вы хотите проверить код на наличие фатальных ошибок.
Замечание:
Эта опция не работает с опцией -r.
Пример #1 Вывод встроенных (и загруженных) модулей PHP и Zend
$ php -m [PHP Modules] xml tokenizer standard session posix pcre overload mysql mbstring ctype [Zend Modules]
Позволяет выполнять PHP-код, указанный непосредственно в командной строке. Открывающие и закрывающие PHP-теги ( ) не нужны и будут приводит к синтаксической ошибке, если они присутствуют.
Замечание:
При использовании этого ключа следует быть очень осторожным и избегать недоразумений, связанных с автоматической подстановкой переменных окружения.
Пример #2 Ошибка синтаксиса при использовании двойных кавычек
$ 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 не происходит.
Пример #3 Использование одинарных кавычек для предотвращения подстановки переменных в консоли
$ 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 доступен в CLI SAPI , но недоступен в CGI SAPI .
Замечание:
Эта опция предназначена только для самого простого кода. Поэтому некоторые конфигурационные директивы (например, auto_prepend_file и auto_append_file) в этом режиме будут проигнорированы.
Выполняемый код PHP перед обработкой потока ввода (stdin).
PHP-код, выполняемый для каждой строки ввода.
В этом режиме есть две специальные переменные: $argn и $argi . $argn содержит строку, которую PHP обрабатывает в данный момент, а $argi содержит номер этой строки.
PHP-файл, выполняемый для каждой строки ввода.
PHP-код, выполняемый после обработки ввода.
Пример #4 Использование опций -B, -R и -E для подсчёта количества строк в проекте.
$ find my_proj | php -B '$l=0;' -R '$l += count(@file($argn));' -E 'echo "Всего строк: $l\n";' Всего строк: 37328
Показать исходный код с подсветкой синтаксиса.
Эта опция использует внутренний механизм для разбора файла и записи в стандартный поток вывода подсвеченной версии этого файла. Учтите, что все что она делает, это генерирует блок [. ]
HTML-тегов, без HTML-заголовков.
Замечание:
Эта опция несовместима с опцией -r.
Пример #5 Использование -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
Показать исходный код без комментариев и пробелов.
Замечание:
Эта опция несовместима с опцией -r.
Загружает модуль Zend. Если передано только имя файла, PHP попытается загрузить этот модуль из пути библиотек по умолчанию (обычно указывается в /etc/ld.so.conf в системах Linux). Передача файла с абсолютным путём не будет использовать системный путь поиска библиотеки. Относительное имя файла, содержащее директорию, укажет PHP подгрузить модуль относительно текущей директории.
Показывает имена конфигурационных файлов и отсканированные директории.
Пример #6 Пример —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)
Показывает информацию об указанной функции или методе класса (например, количество и названия параметров).
Эта опция доступна только в том случае, если PHP был скомпилирован с поддержкой Reflection.
Пример #7 Базовое использование —rf
$ php --rf var_dump Function [ public function var_dump ] < - Parameters [2] < Parameter #0 [ $var ] Parameter #1 [ $. ] > >
Показывает информацию об указанном классе (список констант, свойств и методов).
Эта опция доступна только в том случае, если PHP был скомпилирован с поддержкой Reflection.
Пример #8 Пример —rc
$ php --rc Directory Class [ class Directory ] < - Constants [0] < >- Static properties [0] < >- Static methods [0] < >- Properties [0] < >- Methods [3] < Method [ public method close ] < >Method [ public method rewind ] < >Method [ public method read ] < >> >
Показывает информацию об указанном модуле (список опций php.ini , определённых функций, констант и классов).
Эта опция доступна только в том случае, если PHP был скомпилирован с поддержкой Reflection.
Пример #9 Пример —re
$ php --re json Extension [ extension #19 json version 1.2.1 ] < - Functions < Function [ function json_encode ] < >Function [ function json_decode ] < >> >
Показывает информацию о конфигурации указанного Zend-модуля (та же информация, которая возвращается phpinfo() ).
Показывает информацию о конфигурации указанного модуля (та же информация, которая возвращается phpinfo() ). Конфигурацию ядра можно узнать, указав в качестве имени модуля значение «main».
Пример #10 Пример —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 .