-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.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> .
Вместе с внутренней информацией об ошибке парсера
в станадртный поток вывода записывается текст
Errors parsing <filename> ,
если возникла ошибка.
Опция присвоит коду возврата командной оболочки значение -1 ,
если в заданных файлах или данных стандартного потока ввода возникли ошибки,
иначе опция присвоит коду возврата командной оболочки значение 0 .
Опция не обнаружит фатальные ошибки в коде, который требует выполнения,
наподобие вызова функций, которые не объявили.
Замечание:
До PHP 8.3.0 для проверки разрешалось указывать только одно название файла.
Замечание:
Опция не работает с опцией -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
Проблема здесь заключается в том, что командная оболочка bash выполняет автоматическую
подстановку переменных в sh-командах, если указали двойные кавычки
" . Поскольку маловероятно, что переменную $foo
определили, переменная заменяется пустой строкой, что изменяет
PHP-код, который передали для выполнения, вот так:
Правильное решение в таких ситуациях состоит в указании
одинарных кавычек ' , поскольку автоматическая подстановка
переменных, которые обернули в одинарные кавычки, в 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"]=>
[...]
В оболочках, которые отличаются от оболочки bash и которые запускают sh-команды,
иногда возникают другие проблемы. Тогда требуется создать отчёт о ошибке, которая возникла, на сайте
» https://github.com/php/php-src/issues.
С проблемами иногда сталкиваются при попытке получить доступ
к переменным оболочки или при работе с экранирующими обратными слешами.
Теперь вы предупреждены!
Замечание:
Ключ -r доступен в CLI SAPI, но недоступен
в CGI-интерфейсе к интерфейсу SAPI.
Замечание:
Опция предназначена только для самого простого кода.
Поэтому некоторые конфигурационные директивы наподобие
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
Получение информации о названия SAPI,
PHP- и Zend-версии через опцию -v
$ 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 попытается загрузить модуль из текущего пути библиотеки
по умолчанию в системе, который в Linux-системах обычно указывают
в файле /etc/ld.so.conf, если передали только название файла.
Передача файла с абсолютным путём не будет использовать
системный путь поиска библиотеки. Относительное имя файла, которое содержит
директорию, заставит 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
|