�Ӱ汾 4.3.0 ��ʼ��PHP �ṩ��һ�������͵� CLI SAPI��Server Application Programming Interface�������Ӧ�ñ�̶˿ڣ�֧�֣���Ϊ CLI����Ϊ Command Line Interface���������нӿڡ�����˼�壬�� CLI SAPI ģ����Ҫ���� PHP �Ŀ������Ӧ�á�CLI SAPI ������ CLI SAPI ģ������кܶ�IJ�֮ͬ�������ǽ��ڱ�������ϸ������ֵ��һ����ǣ�CLI �� CGI �Dz�ͬ�� SAPI����������֮���кܶͬ����Ϊ��
CLI SAPI �������� PHP 4.2.0 �汾�����ģ����Ծ�ֻ��һ��ʵ���Եİ汾������Ҫ������ ./configure ʱ���� --enable-cli �������� PHP 4.3.0 �汾��ʼ��CLI SAPI ��Ϊ����ʽģ�飬--enable-cli �����ᱻĬ�ϵ�����Ϊ on��Ҳ�����ò��� --disable-cli �����Ρ�
�� PHP 4.3.0��ʼ��CLI/CGI ������ִ���ļ����ļ�����λ�ú��Ƿ���ڻ���� PHP ��ϵͳ�ϵİ�װ����ͬ����Ĭ������£������� make ʱ��CGI �� CLI ���ᱻ���벢�ҷֱ������ PHP Դ�ļ�Ŀ¼�� sapi/cgi/php �� sapi/cli/php �¡�����ע������ļ���������Ϊ�� php���� make install �Ĺ����лᷢ��ʲôȡ���������С���������õ�ʱ��ѡ����һ�� SAPI ģ�飬�� apxs������ʹ���� --disable-cgi ���������� make install �Ĺ����У�CLI ���������� {PREFIX}/bin/php������ CGI �Ѿ������������Ǹ�λ�á���ˣ����磬��������������� --with--apxs ������ make install �Ĺ����У�CLI ���������� {PREFIX}/bin/php�����ϣ������ CGI ִ���ļ��İ�װ������ make install ֮������ make install-cli�����ߣ�Ҳ�������������м��� --disable-cgi ������
Note:
���� --enable-cli �� --enable-cgi ͬʱĬ����Ч����ˣ��������������м��� --enable-cli ��ʹ�� CLI �� make install �����б������� {PREFIX}/bin/php��
�� PHP 4.2.0 �� PHP 4.2.3 ֮��� Windows ���а��У�CLI ���ļ���Ϊ php-cli.exe����ͬ�ļ����µ� php.exe Ϊ CGI���� PHP 4.3.0 �汾��ʼ��Windows �ķ��а��� CLI ��ִ���ļ�Ϊ php.exe����������һ����������Ϊ cli ���ļ����£��� cli/php.exe���� PHP 5 �У�CLI ���������ļ����У���Ϊ php.exe���� CGI �汾��Ϊ php-cgi.exe��
�� PHP 5 ��һ����Ϊ php-win.exe �����ļ�������������൱�� CLI �汾������ php-win ������κ����ݣ��㲻�ṩ����̨�����ᵯ��"DOS ����"�������ַ�ʽ������ php-gtk����Ҫʹ�� --enable-cli-win32 ѡ������������
Note: ��ε�֪�Լ�ʹ�õ����ĸ� SAPI��
���������£����� php -v ���ܵ�֪�� php �� CGI ���� CLI����ο����� php_sapi_name() �Լ�����
PHP_SAPI
��
Note:
�� PHP 4.3.2 �м����� Unix �� man ҳ�档�������������м��� man php ���鿴��
����Ϊ CLI SAPI ������ CLI SAPI ģ����ȵ���������
�� CGI SAPI ��ͬ�������û���κ�ͷ��Ϣ��
���� CGI SAPI �ṩ��ȡ�� HTTP ͷ��Ϣ�ķ��������� CLI SAPI �в����������Ƶķ����Կ��� HTTP ͷ��Ϣ�������
CLI Ĭ������ģʽ��ʼ����Ϊ�˱�֤�����ԣ�-q �� --no-header ����Ϊ����������Ȼ������ʹ�ÿ���ʹ�þɵ� CGI �ű���
������ʱ������ѹ���Ŀ¼��Ϊ�ű��ĵ�ǰĿ¼������ʹ�� -C �� --no-chdir ���������� CGI ģʽ����
����ʱ������ı��Ĵ�����Ϣ���� HTML ��ʽ����
CLI SAPI ǿ�Ƹ����� php.ini �е�ijЩ���ã���Ϊ��Щ��������ǻ�������û������ġ�
����ѡ�� | CLI SAPI Ĭ��ֵ | ��ע |
---|---|---|
html_errors | FALSE |
������� HTML
��Ƿ���ʹ�ó�����Ϣ�����ң�������������Ķ�������Ϣ��ʮ�����ѵġ���˽���ѡ���Ĭ��ֵ��Ϊ FALSE ��
|
implicit_flush | TRUE |
��������ģʽ�£��������� print �� echo �������������д������ˣ��������κεػ�����������ϣ���ӻ�����Ʊ��������Ȼ����ʹ�� output buffering ����� |
max_execution_time | 0������ֵ�� | ��������ǻ�����ʹ�� PHP ������Ŀ����ԣ��������ʱ�䱻����Ϊ������ֵ��Ϊ web ������Ӧ�ó������ֻ�����м�����ʱ�䣬�����Ӧ�ó��������ʱ����᳤ܻ�Ķࡣ |
register_argc_argv | TRUE |
���ڸ�����Ϊ ���� PHP 4.3.0����ʹ�� CLI SAPI ʱ��PHP ���� $argc �� $argv �ѱ�ע�Ტ���趨�˶�Ӧ��ֵ��������֮ǰ�İ汾�������������� CGI ���� ģ�� �汾�еĽ��������ڽ� PHP ������ѡ�� register_globals ��Ϊ on�����˰汾�� register_globals �趨���⣬������ʱͨ������ $_SERVER ���� $HTTP_SERVER_VARS ���������ǡ����磺$_SERVER['argv'] |
Note:
��Щ�������������ļ� php.ini ���κ�ָ���������ļ��б���ʼ��Ϊ����ֵ����ЩĬ��ֵ�����������������������ļ���������ı䡣���������ǵ�ֵ�����ڳ������еĹ����б��ı䣨���ܶ��ڸ����й�����˵����Щ��������û������ģ���
Ϊ�˼�����ǻ����µĹ��������Ƕ��������³�����
�������� | �� �� |
---|---|
STDIN |
һ���Ѵ�ָ�� stdin ���������������·��������ã�
<?php
<?php |
STDOUT |
һ���Ѵ�ָ�� stdout ���������������·�ʽ�����ã�
<?php |
STDERR |
һ���Ѵ�ָ�� stderr ���������������·�ʽ�����ã�
<?php |
�������ϳ������������Լ�����ָ������ stderr ������ֻ���ʹ����Щ������������ָ��
php -r 'fwrite(STDERR, "stderr\n");'
CLI SAPI ��������ǰĿ¼��Ϊ�����еĽű����ڵ�Ŀ¼��
���·�����ʾ�˱�ģ���� CGI SAPI ģ��֮��IJ�ͬ��
<?php
// ��Ϊ test.php �ļ��Գ���
echo getcwd(), "\n";
?>
��ʹ�� CGI �汾ʱ�������Ϊ
$ pwd /tmp $ php-cgi -f another_directory/test.php /tmp/another_directory
���Կ��Կ��� PHP ����ǰĿ¼�ij��˸ո����й��Ľű����ڵ�Ŀ¼��
ʹ�� CLI SAPI ģʽ���õ���
$ pwd /tmp $ php -q another_directory/test.php /tmp
Note:
����������������ʱ���� CGI SAPI ���� -C ������ʹ��֧�� CLI SAPI �Ĺ��ܡ�
������ PHP �������ļ����� php.exe �����ṩ��������ģʽ��ѡ���������ʱ�������д� -h ������ PHP ��������ѯ��Щ������
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 <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 Display colour syntax highlighted source. -v Version number -w Display 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
CLI SAPI ģ�����������ֲ�ͬ�ķ�������ȡҪ���е� PHP ���룺
�� PHP ����ָ���ļ���
php my_script.php php -f my_script.php
�������ַ�����ʹ�û�ʹ�� -f ���������ܹ����и����� my_script.php �ļ�������ѡ���κ��ļ������У�ָ���� PHP �ű����DZ���Ҫ�� .php Ϊ��չ�������ǿ�����������ļ�������չ����
��������ֱ������ PHP ���롣
php -r 'print_r(get_defined_constants());'
��ʹ�����ַ���ʱ����ע����DZ�������������ŵ�ʹ�á�
Note:
����ϸ�Ķ����Ϸ����������д���ʱû�п�ʼ�ͽ����ı�Ƿ������� -r ��������Щ��Ƿ��Dz���Ҫ�ģ��������ǻᵼ�������
ͨ�������루stdin���ṩ��Ҫ���е� PHP ���롣
�����÷��ṩ�˷dz�ǿ��Ĺ��ܣ�ʹ�ÿ������·�����ʾ����̬������ PHP ���벢ͨ��������������Щ���룺
$ some_application | some_filter | php | sort -u >final_output.txt
�����������д���ķ�������ͬʱʹ�á�
�����е����Ӧ�ó���һ����PHP �Ķ������ļ���php.exe �ļ����������е� PHP �ű��ܹ�����һϵ�еIJ�����PHP û�����ƴ����ű�����IJ����ĸ�������dz���������е��ַ��������ƣ���ͨ�������ᳬ�������ƣ������ݸ��ű��IJ�������ȫ�ֱ��� $argv �л�ȡ�����������±�Ϊ��ij�ԱΪ�ű������ƣ��� PHP �������Ա������ֱ���� -r �����������з�ʽ����ʱ��������Ϊ"-"�������⣬ȫ�ֱ��� $argc ���� $argv �����г�Ա�����ĸ��������Ǵ����ű�����IJ����ĸ�������
ֻҪ�����ű��IJ��������� - ���ſ�ͷ������������ע��ʲô����ű������� - ��ͷ�IJ����ᵼ�´�����Ϊ PHP ����ΪӦ������������������Щ�����������ò����б�ָ��� -- �����������⡣�� PHP ����������÷��ź����еIJ������ᱻԭ�������ű�����
# ��������������� PHP ���룬��ֻ��ʾ PHP ������ģʽ��ʹ��˵���� $ php -r 'var_dump($argv);' -h Usage: php [options] [-f] <file> [args...] [...] # ����������"-h"���������ű�����PHP ������ʾ������ģʽ��ʹ��˵���� $ 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 +x test $ ./test -h -- foo array(4) { [0]=> string(6) "./test" [1]=> string(2) "-h" [2]=> string(2) "--" [3]=> string(3) "foo" }
�����������ģ�����ýű������� - ��ͷ�IJ���ʱ���ű���Ȼ�ܹ��������С�
PHP 4.3.3 ������Ч�ij�ѡ��:
ѡ������ | ������ | ˵�� |
---|---|---|
-a | --interactive |
����ʽ���� PHP��������� PHP ʱ������ Readline ��չ��Windows �²����ã����ǽ���õ�һ���ܺõ���ǣ�����һ���Զ���ɵĹ��ܣ���������ڼ����������ʱ���� TAB ����PHP ���Զ���ɸñ��������Լ�������ʷ��¼�����������¼������ʡ���ʷ��¼���� ~/.php_history �ļ��С�
|
-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" |
-e | --profile-info |
������չ��Ϣģʽ�������ڵ��ԣ����ԡ� |
-f | --file |
���������� -f ѡ��������ļ������ò���Ϊ��ѡ����������ʡ�ԣ���ָ����Ҫ���е��ļ������ɡ� |
-h and -? | --help and --usage | ʹ�øò��������Եõ������������в������б���Щ�������õļ������� |
-i | --info | �������в�������� phpinfo() ��������ʾ���������� PHP û����������������ִ�� php -i �������鿴����Ϣ���֮ǰ���߶�Ӧ�ĵط��Ƿ����κδ�����Ϣ�������ע�ʹ�� CGI ����ʱ�����������Ϊ HTML ��ʽ������������Ϣƪ���ϴ� |
-l | --syntax-check |
�ò����ṩ�˶�ָ�� PHP �����������ķ���ķ���������ɹ�����������д�� No syntax errors detected in <filename> �ַ�����������Ƿ���ֵΪ 0�����ʧ�ܣ������ Errors parsing <filename> �Լ��ڲ�������������Ϣ���������ͬʱ��Ƿ���ֵ��������Ϊ 255�� �ò��������������������δ���庯���������Ҳϣ���������������ʹ�� -f ������
|
-m | --modules |
ʹ�øò�����PHP ����ӡ�������Լ��Ѽ��ص� PHP �� Zend ģ�飺 $ php -m [PHP Modules] xml tokenizer standard session posix pcre overload mysql mbstring ctype [Zend Modules] |
-r | --run |
ʹ�øò��������������������е��� PHP ���롣�������� PHP ����ʼ�ͽ�����ʶ����<?php �� ?>�������ᵼ�����������
|
-B | --process-begin |
�ڴ��� stdin ֮ǰ��ִ�� PHP ���롣PHP 5 �¼ӡ� |
-R | --process-code |
��ÿ�������ж�ִ�� PHP ���롣PHP 5 �¼ӡ� ��ģʽ�����������������$argn �� $argi��$argn ���� PHP ��ǰ����������ݣ��� $argi ��������кš� |
-F | --process-file |
��ÿ�������ж�ִ�� PHP �ļ���PHP 5 �¼ӡ� |
-E | --process-end |
�ڴ����������ִ�е� PHP ���롣PHP 5 �¼ӡ� ʹ�� -B ��-R �� -E ѡ��������һ����Ŀ�����������ӡ� $ find my_proj | php -B '$l=0;' -R '$l += count(@file($argn));' -E 'echo "Total Lines: $l\n";' Total Lines: 37328 |
-s | --syntax-highlight and --syntax-highlight |
��ʾ�������ɫ�ʵ�Դ���롣 �ò���ʹ���ڽ������������ļ���Ϊ������һ�� HTML �����汾�������д�����������ע��ù���������ֻ��������һ�� <code> [...] </code> �� HTML ��ǵĿ飬���������κε� HTML ͷ��
|
-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 |
-w | --strip |
��ʾ��ȥ��ע�ͺͶ���հ�Դ���롣
|
-z | --zend-extension |
���� Zend ��չ�⡣���������һ���ļ�����PHP ����ͼ�ӵ�ǰϵͳ��չ���Ĭ��·������ Linux ϵͳ�£���·��ͨ���� /etc/ld.so.conf ָ�������ظ���չ�⡣�����һ������·��ָ���ļ�������ʹ��ϵͳ����չ��Ĭ��·������������·��ָ�����ļ������� PHP ����ͼ�ڵ�ǰĿ¼�����Ŀ¼������չ�⡣ |
PHP ��������ģʽ��ʹ�� PHP �ű�����ȫ������ web �������������С����ʹ�� Unix ϵͳ����Ҫ�� PHP �ű�����ǰ�����һ������Ĵ��룬ʹ�����ܹ���ִ�У�����ϵͳ����֪�����ĸ�����ȥ���иýű����� Windows ƽ̨�¿��Խ� php.exe �� .php �ļ���˫�������������Ҳ���Ա�дһ���������ļ����� PHP ִ�нű���Ϊ Unix ϵͳ���ӵĵ�һ�д��벻��Ӱ��ýű��� Windows �µ����У����Ҳ�����ø÷�����д��ƽ̨�Ľű�����������һ���� PHP �����г���ķ�����
Example #1 ��ͼ�������з�ʽ���е� PHP �ű���script.php��
#!/usr/bin/php
<?php
if ($argc != 2 || in_array($argv[1], array('--help', '-help', '-h', '-?'))) {
?>
This is a command line PHP script with one option.
Usage:
<?php echo $argv[0]; ?> <option>
<option> can be some word you would like
to print out. With the --help, -help, -h,
or -? options, you can get this help.
<?php
} else {
echo $argv[1];
}
?>
�����Ͻű��У��õ�һ������Ĵ�����ָ�����ļ�Ӧ���� PHP ��ִ�С�������ʹ�� CLI �İ汾����˲����� HTTP ͷ��Ϣ��������� PHP ��д������Ӧ�ó���ʱ������ʹ������������$argc �� $argv��ǰ��һ����ֵ�DZȲ��������� 1 �����������еĽű����������Ҳ������һ�����������ڶ����ǰ����в��������飬���һ��Ԫ��Ϊ�ű������ƣ��±�Ϊ���� 0��$argv[0]����
���ϳ����м���˲����ĸ����Ǵ��� 1 ������С�� 1 ����������������� --help ��-help ��-h �� -? ʱ����ӡ��������Ϣ����ͬʱ��̬����ű������ơ�������յ�������������������ʾ������
���ϣ���� Unix ���������Ͻű�����Ҫʹ������Ϊ��ִ���ļ���Ȼ������� script.php echothis �� script.php -h���� Windows �£�����Ϊ�˱�дһ���������ļ���
Example #2 ���� PHP �����нű����������ļ���script.bat��
@C:\php\php.exe script.php %1 %2 %3 %
���轫������������Ϊ script.php���� CLI ��� php.exe �ļ������� c:\php\cli\php.exe�����������ļ�����������ӵIJ��������ű�����script.bat echothis �� script.bat -h��
����� Readline ��չģ����й��ĵ����Ի�ȡ����ĺ�������Ϣ����Щ�������������� PHP ������Ӧ�ó���