Глава 23. хЯОНКЭГНБЮМХЕ PHP Б ЙНЛЮМДМНИ ЯРПНЙЕ

мЮВХМЮЪ Я БЕПЯХХ 4.3.0, PHP ОНДДЕПФХБЮЕР МНБШИ БХД SAPI (ХМРЕПТЕИЯ ПЮГПЮАНРЙХ ЯЕПБЕПМШУ ОПХКНФЕМХИ) ОНД МЮГБЮМХЕЛ CLI, ВРН НГМЮВЮЕР ХМРЕПТЕИЯ ЙНЛЮМДМНИ ЯРПНЙХ. йЮЙ БХДМН ХГ МЮГБЮМХЪ, ЩРНР БХД SAPI ОПЕДМЮГМЮВЕМ ДКЪ ПЮГПЮАНРЙХ ЙНМЯНКЭМШУ (ХКХ ДЮФЕ ДЕЯЙРНОМШУ) ОПХКНФЕМХИ МЮ PHP. хЛЕЕРЯЪ МЕЯЙНКЭЙН МЕЯСЫЕЯРБЕММШУ ПЮГКХВХИ ЛЕФДС CLI SAPI Х ДПСЦХЛХ БХДЮЛХ SAPI, ЙНРНПШЕ АСДСР ПЮЯЯЛНРПЕМШ Б ЩРНИ ЦКЮБЕ. аСДЕР ОНКЕГМН ГЮЛЕРХРЭ, ВРН CLI Х CGI - ПЮГКХВМШЕ SAPI-ХМРЕПТЕИЯШ, УНРЪ Б ХУ ОНБЕДЕМХХ ЛМНЦН НАЫЕЦН.

бОЕПБШЕ Б ЙЮВЕЯРБЕ ЩЙЯОЕПХЛЕМРЮ CLI SAPI АШК БЙКЧВЕМ Б ПЕКХГ PHP 4.2.0, Х ОПХ ГЮОСЯЙЕ ЯЙПХОРЮ ./configure МЕНАУНДХЛН АШКН ЪБМН СЙЮГШБЮРЭ НОЖХЧ --enable-cli. мЮВХМЮЪ Я PHP 4.3.0, CLI SAPI МЕ ЪБКЪЕРЯЪ ЩЙЯОЕПХЛЕМРЮКЭМШЛ, Х НОЖХЪ ЯАНПЙХ --enable-cli ОПХЯСРЯРБСЕР ОН СЛНКВЮМХЧ. бШ ЛНФЕРЕ НРЙКЧВХРЭ CLI SAPI ОПХ ОНЛНЫХ НОЖХХ --disable-cli.

вРН ЙЮЯЮЕРЯЪ PHP 4.3.0, ХЛЪ, ПЮЯОНКНФЕМХЕ Х ЯСЫЕЯРБНБЮМХЕ АХМЮПМШУ ЛНДСКЕИ CLI/CGI ГЮБХЯХР НР РНЦН, ЙЮЙ ХЛЕММН СЯРЮМНБКЕМ PHP. оН СЛНКВЮМХЧ ОПХ БШОНКМЕМХХ make ЯНГДЮЕРЯЪ ЙЮЙ CGI, РЮЙ Х CLI ЛНДСКЭ, Б ЙЮРЮКНЦЮУ sapi/cgi/php Х sapi/cli/php ЯННРБЕРЯРБЕММН, БМСРПХ ДХПЕЙРНПХХ Я ХЯУНДМШЛХ ЙНДЮЛХ PHP. CКЕДСЕР ГЮЛЕРХРЭ, ВРН НАЮ ТЮИКЮ ХЛЕЧР НДХМЮЙНБНЕ МЮГБЮМХЕ: php. вРН ОПНХГНИДЕР ОПХ БШОНКМЕМХХ make install, ГЮБХЯХР НР РНЦН, ЙЮЙХЕ НОЖХХ БШ СЙЮГЮКХ МЮ ЯРЮДХХ ЙНМТХЦСПХПНБЮМХЪ. б ЯКСВЮЕ, ЕЯКХ БШ НРДЮКХ ОПЕДОНВРЕМХЕ РЮЙНЛС ЛНДСКЧ SAPI ЙЮЙ apxs, КХАН СЙЮГЮКХ НОЖХЧ --disable-cgi, ЛНДСКЭ CLI АСДЕР ЯЙНОХПНБЮМ Б {PREFIX}/bin/php ОПХ БШОНКМЕМХХ make install, Б ОПНРХБМНЛ ЯКСВЮЕ АСДЕР ЯЙНОХПНБЮМ CGI-ЛНДСКЭ. мЮОПХЛЕП, ЕЯКХ ОПХ ГЮОСЯЙЕ ЯЙПХОРЮ ./configure БШ СЙЮГЮКХ НОЖХЧ --with--apxs, CLI-БЕПЯХЪ АСДЕР ЯЙНОХПНБЮМЮ Б {PREFIX}/bin/php ОПХ БШОНКМЕМХХ make install. еЯКХ БШ УНРХРЕ ОЕПЕЙПШРЭ СЯРЮМНБКЕММШИ CGI-ЛНДСКЭ, ХЯОНКЭГСИРЕ make install-cli ОНЯКЕ БШОНКМЕМХЪ make install. б ЙЮВЕЯРБЕ ЮКЭРЕПМЮРХБШ БШ ЛНЦКХ АШ СЙЮГЮРЭ НОЖХЧ --disable-cgi ОПХ БШОНКМЕМХХ ЯЙПХОРЮ ./configure.

Замечание: оНЯЙНКЭЙС НАЕ НОЖХХ, --enable-cli Х --enable-cgi, ОПХЯСРЯРБСЧР ОН СЛНКВЮМХЧ, НДМНЦН ОПХЯСРЯРБХЪ ЯРПНЙХ --enable-cli ОПХ БШОНКМЕМХХ ЯЙПХОРЮ ./configure МЕДНЯРЮРНВМН ДКЪ РНЦН, ВРНАШ CLI-БЕПЯХЪ АШКЮ СЯРЮМНБКЕМЮ Б {PREFIX}/bin/php ОПХ БШОНКМЕМХХ make install.

дХЯРПХАСРХБШ ДКЪ Windows ЛЕФДС БЕПЯХЪЛХ PHP 4.2.0 Х PHP 4.2.3 БЙКЧВЮЧР Б ЯЕАЪ CLI-ЛНДСКЭ ЙЮЙ php-cli.exe, ПЮЯОНКНФЕММШИ Б РНИ ФЕ ДХПЕЙРНПХХ, ВРН Х CGI-ЛНДСКЭ php.exe. мЮВХМЮЪ Я 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-gtk. оПХ ЯАНПЙЕ ХГ ХЯУНДМШУ ЙНДНБ БЮЛ МЕНАУНДХЛН СЙЮГЮРЭ НОЖХЧ --enable-cli-win32.

йЮЙНИ ХГ БЮПХЮМРНБ SAPI СЯРЮМНБКЕМ?: бШОНКМХРЕ ХГ ЙНЛЮМДМНИ ЯРПНЙХ php -v ДКЪ ОНКСВЕМХЪ ХМТНПЛЮЖХХ Н РНЛ, ЙЮЙНИ ХГ ДБСУ ЛНДСКЕИ php СЯРЮМНБКЕМ: CGI ХКХ CLI. рЮЙФЕ БШ ЛНФЕРЕ ХЯОНКЭГНБЮРЭ ДКЪ ЩРНЦН ТСМЙЖХЧ php_sapi_name() ХКХ ЙНМЯРЮМРС PHP_SAPI.

Замечание: яННРБЕРЯРБСЧЫЮЪ ЯРПЮМХЖЮ ПСЙНБНДЯРБЮ Unix АШКЮ ДНАЮБКЕМЮ Б PHP 4.3.2. бШ ЛНФЕРЕ СБХДЕРЭ ЕЕ, БШОНКМХБ Б ЙНМЯНКХ man php.

нЯМНБМШЕ НРКХВХЪ CLI SAPI НР НЯРЮКЭМШУ ПЕЮКХГЮЖХИ SAPI:

яОХЯНЙ НОЖХИ, ДНЯРСОМШИ ОПХ ГЮОСЯЙЕ PHP ХГ ЙНЛЮМДМНИ ЯРПНЙХ, ЛНФЕР АШРЭ ОНКСВЕМ Б КЧАНИ ЛНЛЕМР ОСРЕЛ ГЮОСЯЙЮ PHP Я ЙКЧВНЛ -h:
Usage: php [options] [-f] <file> [args...]
       php [options] -r <code> [args...]
       php [options] [-- args...]
  -s               нРНАПЮФЮЕР ХЯУНДМШИ ЙНД Я ЖБЕРМНИ ОНДЯБЕРЙНИ
  -w               нРНАПЮФЮЕР ХЯУНДМШИ РЕЙЯР АЕГ ЙНЛЛЕМРЮПХЕБ Х ОПНАЕКНБ
  -f <file>        хЯОНКМЪЕР <file>
  -v               бШБНДХР ХМТНПЛЮЖХЧ Н БЕПЯХХ PHP
  -c <path>|<file> хЫЕР ТЮИК php.ini Б СЙЮГЮММНИ ДХПЕЙРНПХХ
  -a               хМРЕПЮЙРХБМШИ ГЮОСЯЙ
  -d foo[=bar]     сЯРЮМНБХРЭ ЙНМТХЦСПЮЖХНММСЧ НОЖХЧ foo ГМЮВЕМХЕЛ 'bar'
  -e               цЕМЕПЮЖХЪ ДНОНКМХРЕКЭМНИ ХМТНПЛЮЖХХ ДКЪ НРКЮДВХЙЮ Х ОПНТЮИКЕПЮ
  -z <file>        гЮЦПСГХРЭ Zend-ПЮЯЬХПЕМХЕ <file>.
  -l               оПНБЕПХРЭ ЯХМРЮЙЯХЯ
  -m               оНЙЮГЮРЭ ОНДЙКЧВЕММШЕ ЛНДСКХ
  -i               бШБНДХР ХМТНПЛЮЖХЧ Н PHP
  -r <code>        гЮОСЯРХРЭ PHP-ЙНД АЕГ ХЯОНКЭГНБЮМХЪ <?..?>
  -h               рЕЙСЫЮЪ ЯОПЮБЙЮ

  args...          юПЦСЛЕМРШ, ОЕПЕДЮБЮЕЛШЕ ЯЙПХОРС. хЯОНКЭГСИРЕ -- args Б ЯКСВЮЕ, ЕЯКХ 
                   ОЕПБШИ ЮПЦСЛЕМР МЮВХМЮЕРЯЪ Я '-' ХКХ ЯЮЛ ЯЙПХОР ВХРЮЕРЯЪ ХГ ОНРНЙЮ STDIN.

CLI SAPI ХЛЕЕР РПХ ПЮГКХВМШУ ЯОНЯНАЮ ОНКСВЕМХЪ PHP-ЙНДЮ, ЙНРНПШИ МЕНАУНДХЛН БШОНКМХРЭ:

  1. сЙЮГЮРЭ PHP МЮ ХЯОНКМЕМХЕ ЙНМЙПЕРМНЦН ТЮИКЮ.

    php my_script.php
    
    php -f my_script.php
    нАЮ ЯОНЯНАЮ (Я ХКХ АЕГ ХЯОНКЭГНБЮМХЪ ЙКЧВЮ -f) ХЯОНКМЪЧР СЙЮГЮММШИ ТЮИК my_script.php. бШ ЛНФЕРЕ БШАПЮРЭ КЧАНИ ТЮИК - БЮЬХ PHP-ЯЙПХОРШ МЕ НАЪГЮМШ ГЮЙЮМВХБЮРЭЯЪ МЮ .php, Ю ЛНЦСР ХЛЕРЭ КЧАНЕ ХЛЪ Х ПЮЯЬХПЕМХЕ.

  2. сЙЮГЮРЭ PHP-ЙНД ДКЪ БШОНКМЕМХЪ МЕОНЯПЕДЯРБЕММН Б ЙНЛЮМДМНИ ЯРПНЙЕ.

    php -r 'print_r(get_defined_constants());'
    нЯНАНЦН БМХЛЮМХЪ РПЕАСЕР ОНДЯРЮМНБЙЮ ОЕПЕЛЕММШУ НЙПСФЕМХЪ Х ХЯОНКЭГНБЮМХЕ ЙЮБШВЕЙ.

    Замечание: оНЯЛНРПХРЕ БМХЛЮРЕКЭМН МЮ ОПХЛЕП: Б МЕЛ МЕР МЮВЮКЭМШУ Х ЙНМЕВМШУ РЕЦНБ! оПХ ХЯОНКЭГНБЮМХХ ЙКЧВЮ -r НМХ МЕ МСФМШ. хЯОНКЭГНБЮМХЕ ХУ Б ДЮММНЛ ОПХЛЕПЕ ОПХБЕДЕР Й ЯХМРЮЙЯХВЕЯЙНИ НЬХАЙЕ.

  3. оПЕДНЯРЮБХРЭ PHP-ЙНД ДКЪ БШОНКМЕМХЪ ОНЯПЕДЯРБНЛ ЯРЮМДЮПРМНЦН ОНРНЙЮ stdin.

    щРН ОНГБНКЪЕР ДХМЮЛХВЕЯЙХ ЯНГДЮБЮРЭ PHP-ЙНД Х ОЕПЕЮДПЕЯНБШБЮРЭ ЕЦН ХЯОНКМЪЕЛНЛС ЛНДСКЧ, ЙЮЙ ОНЙЮГЮМН Б ЯКЕДСЧЫЕЛ (БШЛШЬКЕММНЛ) ОПХЛЕПЕ:
    $ some_application | some_filter | php | sort -u >final_output.txt

бШ МЕ ЛНФЕРЕ ЙНЛАХМХПНБЮРЭ ЩРХ РПХ ЯОНЯНАЮ БШОНКМЕМХЪ ЙНДЮ.

йЮЙ Х Б КЧАНЛ ЙНМЯНКЭМНЛ ОПХКНФЕМХХ, МЕ РНКЭЙН PHP, МН Х ЯЮЛ ЯЙПХОР ЛНФЕР ОПХМХЛЮРЭ ЮПЦСЛЕМРШ ЙНЛЮМДМНИ ЯРПНЙХ. йНКХВЕЯРБН ОЕПЕДЮБЮЕЛШУ ЮПЦСЛЕМРНБ Б PHP МЕ НЦПЮМХВЕМН (УНРЪ ЙНМЯНКЭ ХЛЕЕР МЕЙНРНПНЕ НЦПЮМХВЕМХЕ МЮ ЙНКХВЕЯРБН ОЕПЕДЮБЮЕЛШУ ЯХЛБНКНБ, МН МЮ ОПЮЙРХЙЕ БШ МЕ ДНКФМШ Я ЩРХЛ ЯРНКЙМСРЭЯЪ). бЯЕ ЮПЦСЛЕМРШ, ОЕПЕДЮММШЕ БЮЬЕЛС ЯЙПХОРС, ДНЯРСОМШ Б БХДЕ ЦКНАЮКЭМНЦН ЛЮЯЯХБЮ $argv. мСКЕБНИ ЩКЕЛЕМР ЯНДЕПФХР ХЛЪ ЯЙПХОРЮ (ЙНРНПНЕ ЪБКЪЕРЯЪ ЯХЛБНКНЛ - Б ЯКСВЮЕ, ЕЯКХ PHP-ЙНД ВХРЮЕРЯЪ ХГ ОНРНЙЮ stdin ХКХ СЙЮГЮМ Б ЙНЛЮМДМНИ ЯРПНЙЕ ОПХ ОНЛНЫХ ЙКЧВЮ -r). бРНПЮЪ НОПЕДЕКЪЕЛЮЪ ЦКНАЮКЭМЮЪ ОЕПЕЛЕММЮЪ $argc ЯНДЕПФХР ЙНКХВЕЯРБН ЩКЕЛЕМРНБ ЛЮЯЯХБЮ $argvМЕ ЙНКХВЕЯРБН ЮПЦСЛЕМРНБ, ОЕПЕДЮБЮЕЛШУ ОПХ ГЮОСЯЙЕ).

дН РЕУ ОНП, ОНЙЮ ОЕПЕДЮБЮЕЛШЕ ЮПЦСЛЕМРШ МЕ МЮВХМЮЧРЯЪ Я ЯХЛБНКЮ -, МХВЕЦН НЯНАЕММНЦН ОПЕДОПХМХЛЮРЭ МЕ МЮДН. мН ОПХ СЙЮГЮМХХ ЮПЦСЛЕМРЮ, ЙНРНПШИ МЮВХМЮЕРЯЪ Я ЯХЛБНКЮ -, ЛНФЕР БНГМХЙМСРЭ ОПНАКЕЛЮ, РЮЙ ЙЮЙ PHP ОНОШРЮЕРЯЪ НАПЮАНРЮРЭ ХУ ЯЮЛНЯРНЪРЕКЭМН. вРНАШ ОПЕДНРБПЮРХРЭ ЩРН, ХЯОНКЭГСИРЕ -- Б ЙЮВЕЯРБЕ ПЮГДЕКХРЕКЪ ЯОХЯЙЮ ЮПЦСЛЕМРНБ. бЯЕ ОНЯКЕДСЧЫХЕ ГЮ РЮЙХЛ ПЮГДЕКХРЕКЕЛ ЮПЦСЛЕМРШ АСДСР ОЕПЕДЮМШ БЮЬЕЛС ЯЙПХОРС АЕГ ХГЛЕМЕМХИ.

# оПХБЕДЕММШИ ОПХЛЕП МЕ БШОНКМХР СЙЮГЮММШИ ЙНД, Ю БШДЮЯР ЯОПЮБЙС НА ХЯОНКЭГНБЮМХХ PHP
$ php -r 'var_dump($argv);' -h
Usage: php [options] [-f] <file> [args...]
[...]

# юПЦСЛЕМР '-h' АСДЕР ОЕПЕДЮМ ЯЙПХОРС, ЯОПЮБЙЮ МЮОЕВЮРЮМЮ МЕ АСДЕР
$ php -r 'var_dump($argv);' -- -h
array(2) {
  [0]=>
  string(1) "-"
  [1]=>
  string(2) "-h"
}

нДМЮЙН, ЯСЫЕЯРБСЕР ЕЫЕ НДХМ ЯОНЯНА ХЯОНКЭГНБЮМХЪ PHP ДКЪ МЮОХЯЮМХЪ ЙНМЯНКЭМШУ ЯЙПХОРНБ. бШ ЛНФЕРЕ МЮОХЯЮРЭ ЯЙПХОР, ОЕПБЮЪ ЯРПНЙЮ ЙНРНПНЦН МЮВХМЮЕРЯЪ Я #!/usr/bin/php. яКЕДСЧЫХЕ ЯРПНЙХ ЯНДЕПФЮР НАШЙМНБЕММШИ PHP-ЙНД, НАПЮЛКЕММШИ НРЙПШБЮЧЫХЛХ Х ГЮБЕПЬЮЧЫХЛХ PHP-РЕЦЮЛХ. рЮЙФЕ МЕНАУНДХЛН СЯРЮМНБХРЭ ОПЮБЮ МЮ БШОНКМЕМХЕ (ЙЮЙ ОПЮБХКН, ЩРН chmod +x test), ВРНАШ БЮЬ ЯЙПХОР ЛНЦ ГЮОСЯЙЮРЭЯЪ, ЙЮЙ НАШЙМНБЕММШИ ЙНМЯНКЭМШИ (ХКХ perl) ЯЙПХОР:
#!/usr/bin/php
<?php
var_dump
($argv);
?>
оПЕДОНКНФХБ, ВРН МЮЬ ЯЙПХОР МЮГШБЮЕРЯЪ test Х ПЮЯОНКНФЕМ Б РЕЙСЫЕИ ДХПЕЙРНПХХ, ЛШ ЛНФЕЛ БШОНКМХРЭ ЯКЕДСЧЫЕЕ:
$ chmod 755 test
$ ./test -h -- foo
array(4) {
  [0]=>
  string(6) "./test"
  [1]=>
  string(2) "-h"
  [2]=>
  string(2) "--"
  [3]=>
  string(3) "foo"
}
йЮЙ БХДМН ХГ ОПХЛЕПЮ, ОПХ ОЕПЕДЮВЕ ОЮПЮЛЕРПНБ ЙНЛЮМДМНИ ЯРПНЙХ, МЮВХМЮЧЫХУЯЪ Я ЯХЛБНКЮ -, МХЙЮЙХУ НЯНАШУ ДЕИЯРБХИ ОПЕДОПХМХЛЮРЭ МЕ МЮДН.

оНКМШЕ МЮГБЮМХЪ НОЖХИ ДНЯРСОМШ, МЮВХМЮЪ Я PHP 4.3.3.

Таблица 23-3. нОЖХХ, ДНЯРСОМШЕ ХГ ЙНЛЮМДМНИ ЯРПНЙХ

нОЖХЪоНКМНЕ МЮГБЮМХЕнОХЯЮМХЕ
-s--syntax-highlight

нРНАПЮФЮЕР ХЯУНДМШИ ЙНД Я ЖБЕРМНИ ОНДЯБЕРЙНИ

щРЮ НОЖХЪ ХЯОНКЭГСЕР БМСРПЕММХИ ЛЕУЮМХГЛ ПЮГАНПЮ ТЮИКЮ, ЦЕМЕПХПСЕР ОНДЯБЕВЕММСЧ HTML-БЕПЯХЧ Х ГЮОХЯШБЮЕР ЕЕ Б ЯРЮМДЮПРМШИ БШБНД. яКЕДСЕР ГЮЛЕРХРЭ, ВРН ЦЕМЕПХПСЕРЯЪ РНКЭЙН АКНЙ <code> [...] </code> Я HTML-РЕЦЮЛХ, АЕГ HTML-ГЮЦНКНБЙНБ.

Замечание: щРЮ НОЖХЪ МЕ ЯНБЛЕЯРХЛЮ Я НОЖХЕИ -r.

-s--syntax-highlighting

юКХЮЯ ДКЪ --syntax-highlight.

-w--strip

нРНАПЮФЮЕР ХЯУНДМШИ РЕЙЯР АЕГ ЙНЛЛЕМРЮПХЕБ Х ОПНАЕКЭМШУ ЯХЛБНКНБ.

Замечание: щРЮ НОЖХЪ МЕ ЯНБЛЕЯРХЛЮ Я НОЖХЕИ -r.

-f--file

хЯОНКМЪЕР СЙЮГЮММШИ ТЮИК. нОЖХЪ -f ЪБКЪЕРЯЪ МЕ НАЪГЮРЕКЭМНИ Х ЛНФЕР НРЯСРЯРБНБЮРЭ. дНЯРЮРНВМН ОПНЯРН СЙЮГЮРЭ ХЛЪ ТЮИКЮ.

-v--version

бШБНДХР ХМТНПЛЮЖХЧ Н БЕПЯХХ PHP, PHP SAPI Х Zend, МЮОПХЛЕП:
$ php -v
PHP 4.3.0 (cli), Copyright (c) 1997-2002 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2002 Zend Technologies

-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

-n--no-php-ini

сЙЮГШБЮЕР МЮ МЕНАУНДХЛНЯРЭ ХЦМНПХПНБЮРЭ ЙНМТХЦСПЮЖХНММШИ ТЮИК php.ini, ДНЯРСОЕМ, МЮВХМЮЪ Я PHP 4.3.0.

-d--define

щРЮ НОЖХЪ ОНГБНКЪЕР СЯРЮМЮБКХБЮРЭ ЯОЕЖХЮКЭМНЕ ГМЮВЕМХЕ ДКЪ ЙЮФДНИ ХГ ЙНМТХЦСПЮЖХНММШУ ОЕПЕЛЕММШУ, ДНЯРСОМШУ Б 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"

-a--interactive

гЮОСЯЙЮЕР PHP Б ХМРЕПЮЙРХБМНЛ ПЕФХЛЕ.

-e--profile-info

цЕМЕПХПСЕР ДНОНКМХРЕКЭМСЧ ХМТНПЛЮЖХЧ ДКЪ НРКЮДВХЙЮ Х ОПНТЮИКЕПЮ.

-z--zend-extension

оНДЦПСФЮЕР ДНОНКМХРЕКЭМШИ ЛНДСКЭ Zend. б ЯКСВЮЕ, ЕЯКХ СЙЮГЮМН РНКЭЙН ХЛЪ ТЮИКЮ, PHP ХЫЕР ЛНДСКЭ Б РЕЙСЫЕЛ ОСРХ Й АХАКХНРЕЙЮЛ ОН СЛНКВЮМХЧ (Б Linux-ЯХЯРЕЛЮУ НМ НАШВМН СЙЮГЮМ Б /etc/ld.so.conf). б ЯКСВЮЕ, ЕЯКХ СЙЮГЮМН ХЛЪ ТЮИКЮ Х ОНКМШИ ОСРЭ Й МЕЛС, ОНХЯЙ Б ЯХЯРЕЛМШУ АХАКХНРЕЙЮУ МЕ ОПНХГБНДХРЯЪ. сЙЮГЮМХЕ НРМНЯХРЕКЭМНЦН ОСРХ Й ЛНДСКЧ ОПХБЕДЕР Й ОНХЯЙС ТЮИКЮ ОН СЙЮГЮММНЛС ОСРХ НРМНЯХРЕКЭМН РЕЙСЫЕИ ДХПЕЙРНПХХ.

-l--syntax-check

щРЮ НОЖХЪ ОПЕДНЯРЮБКЪЕР СДНАМШИ ЯОНЯНА ДКЪ ОПНБЕПЙХ ГЮДЮММНЦН PHP-ЙНДЮ МЮ МЮКХВХЕ ЯХМРЮЙЯХВЕЯЙХУ НЬХАНЙ. б ЯКСВЮЕ СЯОЕЬМНИ ОПНБЕПЙХ АСДЕР МЮОЕВЮРЮМЮ ЯКЕДСЧЫЮЪ ТПЮГЮ: "No syntax errors detected in <filename>",- Х ЙНД БНГБПЮРЮ АСДЕР ПЮБЕМ 0. ю Б ЯКСВЮЕ МЕСДЮВХ - РЕЙЯР "Errors parsing <filename>" БЛЕЯРЕ Я БМСРПЕММХЛХ ЯННАЫЕМХЪЛХ ПЮГАНПЫХЙЮ Х ЙНД БНГБПЮРЮ 255.

оПНБЕПЙЮ ХЯУНДМНЦН ЙНДЮ ОПХ ОНЛНЫХ ДЮММНИ НОЖХХ МЕ МЮУНДХР ТЮРЮКЭМШУ НЬХАНЙ (МЮОПХЛЕП, РЮЙХУ ЙЮЙ БШГНБ МЕНОПЕДЕКЕММШУ ТСМЙЖХИ). хЯОНКЭГСИРЕ НОЖХЧ -f, ЕЯКХ БШ УНРХРЕ ОПНБЕПХРЭ ЙНД МЮ МЮКХВХЕ ТЮРЮКЭМШУ НЬХАНЙ.

Замечание: щРЮ НОЖХЪ МЕ ЯНБЛЕЯРХЛЮ Я НОЖХЕИ -r.

-m--modules

оПХ ХЯОНКЭГНБЮМХХ ЩРНИ НОЖХХ PHP МЮОЕВЮРЮЕР ЯОХЯНЙ БЯРПНЕММШУ (Ю РЮЙФЕ ОНДЦПСФЕММШУ) ЛНДСКЕИ Zend Х PHP.
$ php -m
[PHP Modules]
xml
tokenizer
standard
session
posix
pcre
overload
mysql
mbstring
ctype

[Zend Modules]

-i--info хЯОНКЭГНБЮМХЕ ЩРНИ НОЖХХ ОПХБНДХР Й БШГНБС ТСМЙЖХХ phpinfo() Х Х БШБНДС ПЕГСКЭРХПСЧЫЕИ ХМТНПЛЮЖХХ. б ЯКСВЮЕ, ЕЯКХ PHP ПЮАНРЮЕР МЕЙНППЕЙРМН, АСДЕР БЕЯЭЛЮ КНЦХВМН БШОНКМХРЭ php -i Х ОНЯЛНРПЕРЭ, БШБНДЪРЯЪ КХ ЯННАЫЕМХЪ НА НЬХАЙЕ ДН ХМТНПЛЮЖХНММШУ РЮАКХЖ ХКХ ДЮФЕ БЛЕЯРН МХУ. сВРХРЕ, ВРН БЕЯЭ БШБНД АСДЕР Б ТНПЛЮРЕ HTML Х, ЙЮЙ ЯКЕДЯРБХЕ, ЛНФЕР БШЦКЪДЕРЭ МЕВХРЮАЕКЭМН.
-r--run

щРЮ НОЖХЪ ОНГБНКЪЕР БШОНКМЪРЭ PHP-ЙНД, СЙЮГЮММШИ МЕОНЯПЕДЯРБЕММН Б ЙНЛЮМДМНИ ЯРПНЙЕ. нРЙПШБЮЧЫХЕ Х ГЮБЕПЬЮЧЫХЕ PHP-РЕЦХ (<?php Х ?>) МЕ МСФМШ Х, АНКЕЕ РНЦН, ОПХБНДЪР Й ЯХМРЮЙЯХВЕЯЙНИ НЬХАЙЕ.

Замечание: оПХ ХЯОНКЭГНБЮМХХ ЩРНЦН ЙКЧВЮ ЯКЕДСЕР АШРЭ НВЕМЭ НЯРНПНФМШЛ Х ХГАЕЦЮРЭ МЕДНПЮГСЛЕМХИ, ЯБЪГЮММШУ Я ЮБРНЛЮРХВЕЯЙНИ ОНДЯРЮМНБЙНИ ОЕПЕЛЕММШУ НЙПСФЕМХЪ.

бНР ОПХЛЕП, ОПХБНДЪЫХИ Й ЯХМРЮЙЯХВЕЯЙНИ НЬХАЙЕ:
$ php -r "$foo = get_defined_constants();"
Command line code(1) : Parse error - parse error, unexpected '='
оПНАКЕЛЮ ГЮЙКЧВЮЕРЯЪ Б РНЛ, ВРН sh/bash БШОНКМЪЕР ЮБРНЛЮРХВЕЯЙСЧ ОНДЯРЮМНБЙС ОЕПЕЛЕММШУ Б ЯКСВЮЕ, ЕЯКХ ХЯОНКЭГСЧРЯЪ ДБНИМШЕ ЙЮБШВЙХ ("). оНЯЙНКЭЙС ОЕПЕЛЕММЮЪ $foo БПЪД КХ НОПЕДЕКЕМЮ, НМЮ ГЮЛЕМЪЕРЯЪ ОСЯРНИ ЯРПНЙНИ, РЮЙ ВРН ОЕПЕДЮБЮЕЛШИ PHP-ЙНД ДКЪ БШОНКМЕМХЪ БШЦКЪДХР ЯКЕДСЧЫХЛ НАПЮГНЛ:
$ php -r " = get_defined_constants();"
оПЮБХКЭМШЛ ПЕЬЕМХЕЛ Б ДЮММНЛ ЯКСВЮЕ АСДЕР ХЯОНКЭГНБЮМХЕ НДХМНВМШУ ЙЮБШВЕЙ ', ОНЯЙНКЭЙС ЮБРНЛЮРХВЕЯЙЮЪ ОНДЯРЮМНБЙЮ ОЕПЕЛЕММШУ, ГЮЙКЧВЕММШУ Б НДХМНВМШЕ ЙЮБШВЙХ, Б sh/bash МЕ ОПНХЯУНДХР.
$ 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, С БЮЯ ЛНЦСР БНГМХЙМСРЭ ДПСЦХЕ БНОПНЯШ. б РЮЙНЛ ЯКСВЮЕ ЯНГДЮИРЕ ПЮОНПР Н БНГМХЙЬЕИ ОПНАКЕЛЕ ХКХ МЮОХЬХРЕ ОХЯЭЛН ОН ЮДПЕЯС phpdoc@lists.php.net. бШ БОНКМЕ ЛНФЕРЕ ЯРНКЙМСРЭЯЪ Я ОПНАКЕЛЮЛХ ОПХ ОНОШРЙЕ ОНКСВХРЭ ДНЯРСО Й ОЕПЕЛЕММШЛ НАНКНВЙХ ХКХ ОПХ ПЮАНРЕ Я ЩЙПЮМХПСЧЫХЛХ НАПЮРМШЛХ ЯКЕЬЮЛХ. лШ БЮЯ ОПЕДСОПЕДХКХ.

Замечание: йКЧВ -r ДНЯРСОЕМ Б CLI SAPI Х МЕ ДНЯРСОЕМ Б CGI SAPI.

-h--help оПХ ОНЛНЫХ ЩРНИ НОЖХХ БШ ЛНФЕРЕ ОНКСВХРЭ ХМТНПЛЮЖХЧ Н ДЕИЯРБСЧЫЕЛ ЯОХЯЙЕ НОЖХИ ЙНЛЮМДМНИ ЯРПНЙХ Х ХУ ЙПЮРЙНЕ НОХЯЮМХЕ.
-?--usage юКХЮЯ ДКЪ --help.

хЯОНКМЪЕЛШИ PHP-ТЮИК ЛНФЕР ХЯОНКЭГНБЮРЭЯЪ ДКЪ ГЮОСЯЙЮ PHP-ЯЙПХОРНБ МЕГЮБХЯХЛН НР БЕА-ЯЕПБЕПЮ. б ЯКСВЮЕ, ЕЯКХ БШ ПЮАНРЮЕРЕ Б Unix-ОНДНАМНИ ЯХЯРЕЛЕ, БЮЛ МЕНАУНДХЛН ДНАЮБХРЭ ЙН БЯЕЛ ЯЙПХОРЮЛ ЯОЕЖХЮКЭМСЧ ОЕПБСЧ ЯРПНЙС Х ЯДЕКЮРЭ ХУ ХЯОНКМЪЕЛШЛХ, ВРНАШ СЙЮГЮРЭ, ЙЮЙЮЪ ХГ ОПНЦПЮЛЛ ДНКФМЮ НАПЮАЮРШБЮРЭ ЩРХ ЯЙПХОРШ. мЮ Windows-ОКЮРТНПЛЮУ БШ ЛНФЕРЕ МЮГМЮВХРЭ НАПЮАНРВХЙ php.exe ДКЪ ТЮИКНБ Я ПЮЯЬХПЕМХЪЛХ .php КХАН ЯНГДЮРЭ ОЮЙЕРМШИ (.bat) ТЮИК ДКЪ ГЮОСЯЙЮ ЯЙПХОРНБ ОНЯПЕДЯРБНЛ PHP. яРПНЙЮ, ДНАЮБКЪЕЛЮЪ БМЮВЮКЕ ЯЙПХОРЮ ДКЪ Unix-ЯХЯРЕЛ, МЕ БКХЪЕР МЮ ХУ ПЮАНРС Б ня Windows, РЮЙХЛ НАПЮГНЛ БШ ЛНФЕРЕ ЯНГДЮБЮРЭ ЙПНЯЯОКЮРТНПЛЕММШЕ ЯЙПХОРШ. мХФЕ ОПХБЕДЕМ ОПНЯРНИ ОПХЛЕП ЯЙПХОРЮ, БШОНКМЪЕЛНЦН ХГ ЙНЛЮМДМНИ ЯРПНЙХ:

Пример 23-1. яЙПХОР, ОПЕДМЮГМЮВЕММШИ ДКЪ ГЮОСЯЙЮ ХГ ЙНЛЮМДМНИ ЯРПНЙХ (script.php)

#!/usr/bin/php
<?php

if ($argc != 2 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {
?>

щРН ЙНМЯНКЭМШИ PHP-ЯЙПХОР, ОПХМХЛЮЧЫХИ НДХМ ЮПЦСЛЕМР.

  хЯОНКЭГНБЮМХЕ:
  <?php echo $argv[0]; ?> <option>

  <option> кЧАНЕ ЯКНБН, ЙНРНПНЕ БШ УНРЕКХ АШ
  МЮОЕВЮРЮРЭ. нОЖХХ  --help, -help, -h,
  ХКХ -? ОНЙЮФСР РЕЙСЫСЧ ЯОПЮБНВМСЧ ХМТНПЛЮЖХЧ.

<?php
} else {
    echo
$argv[1];
}
?>

б ОПХБЕДЕММНЛ ОПХЛЕПЕ ЛШ ХЯОНКЭГСЕЛ ЯОЕЖХЮКЭМСЧ ОЕПБСЧ ЯРПНЙС ДКЪ СЙЮГЮМХЪ МЮ РН, ВРН ЩРНР ЯЙПХОР МЕНАУНДХЛН ГЮОСЯЙЮРЭ ОПХ ОНЛНЫХ PHP. оНЯЙНКЭЙС ЛШ ПЮАНРЮЕЛ Я CLI-БЕПЯХЕИ, РН HTTP-ГЮЦНКНБЙХ БШБНДХРЭЯЪ МЕ АСДСР. оПХ МЮОХЯЮМХХ ЙНМЯНКЭМШУ ОПХКНФЕМХИ МЮ PHP БЮЛ ДНЯРСОМШ ДБЕ ОЕПЕЛЕММШЕ: $argc Х $argv. оЕПБЮЪ - ЙНКХВЕЯРБН ОЕПЕДЮММШУ ЮПЦСЛЕМРНБ ОКЧЯ НДХМ (ХЛЪ БШОНКМЪЕЛНЦН ЯЙПХОРЮ). бРНПЮЪ - ЛЮЯЯХБ ОЕПЕДЮММШУ ЮПЦСЛЕМРНБ, МЮВХМЮЪ Я ХЛЕМХ ЯЙПХОРЮ Я МСКЕБШЛ ХМДЕЙЯНЛ ($argv[0]).

рЮЙФЕ Б ОПХБЕДЕММНЛ ОПХЛЕПЕ ЛШ ОПНБЕПЪЕЛ ЙНКХВЕЯРБН ОЕПЕДЮММШУ ЮПЦСЛЕМРНБ. б ЯКСВЮЕ, ЕЯКХ ХУ АНКЕЕ ХКХ ЛЕМЕЕ НДМНЦН, Ю РЮЙФЕ Б ЯКСВЮЕ, ЕЯКХ ОЕПЕДЮММШИ ЮПЦСЛЕМР АШК --help, -help, -h ХКХ -?, ЛШ БШБНДХЛ ЯОПЮБНВМНЕ ЯННАЫЕМХЕ, ОНДЯРЮБКЪЪ ХЛЪ БШОНКМЪЕЛНЦН ЯЙПХОРЮ ДХМЮЛХВЕЯЙХ. б НАПЮРМНЛ ЯКСВЮЕ ЛШ ОПНЯРН ОЕВЮРЮЕЛ ОНКСВЕММШИ ЮПЦСЛЕМР.

еЯКХ БШ УНРХРЕ БШОНКМХРЭ ОПХБЕДЕММШИ ОПХЛЕП Б Unix-ЯХЯРЕЛЕ, БЮЛ МЕНАУНДХЛН ЯДЕКЮРЭ ЕЦН ХЯОНКМЪЕЛШЛ Х ОПНЯРН БШОНКМХРЭ ХГ ЙНМЯНКХ script.php echothis ХКХ script.php -h. б Windows-ЯХЯРЕЛЕ БШ ЛНФЕРЕ ЯНГДЮРЭ ДКЪ ЩРНЦН ОЮЙЕРМШИ ТЮИК:

Пример 23-2. оЮЙЕРМШИ ТЮИК ДКЪ ГЮОСЯЙЮ PHP-ЯЙПХОРЮ ХГ ЙНЛЮМДМНИ ЯРПНЙХ (script.bat)

@c:\php\cli\php.exe script.php %1 %2 %3 %4

оПЕДОНКЮЦЮЪ, ВРН ЯЙПХОР МЮГШБЮЕРЯЪ script.php Х ОНКМШИ ОСРЭ Й CLI php.exe ЯНБОЮДЮЕР Я c:\php\cli\php.exe, ОПХБЕДЕММШИ ОЮЙЕРМШИ ТЮИК ГЮОСЯРХР ЯЙПХОР Я ОЕПЕДЮММШЛХ БЮЛХ ОЮПЮЛЕРПЮЛХ: script.bat echothis КХАН script.bat -h.

бШ РЮЙФЕ ЛНФЕРЕ НГМЮЙНЛХРЯЪ Я ПЮЯЬХПЕМХЕЛ Readline, ЙНРНПНЕ ЛНФЕР АШРЭ ХЯОНКЭГНБЮМН ДКЪ СЯНБЕПЬЕМЯРБНБЮМХЪ ЙНМЯНКЭМНЦН PHP-ЯЙПХОРЮ.


HIVE: All information for read only. Please respect copyright!
Hosted by hive йца: йХЕБЯЙЮЪ ЦНПНДЯЙЮЪ АХАКХНРЕЙЮ