** 实例在linux下测试通过
控制台解释器有两种,一种是cgi的,它会生成带有http头输出;另外一种是 纯cli(Command Line Interface)的,它不会生成http头。使用方法都是一样的,记得不要通过标准输入来输入程序,而要用php -f filename。输入php -v可以知道你的php是哪一种。然而,我发现其实cgi的似乎也会产生不带http头的输出。linux下编译后安装cli,要执行make install-cli。下面两个例子都是可以直接在控制台中执行的,只要加上x权限。详细资料,请阅读官方文档: http://www.php.net/manual/zh/features.commandline.php。
例子1-标准输入、输出(STDIN, STDOUT, STDERR):
#
!/usr/bin/php
Enter two numbers
:
<?
php
fscanf
(STDIN
,
"
%d %d
"
,
$a
,
$b
);
echo
"
$a+$b=
"
.
(
$a
+
$b
);
?>
注意上面这段程序最后一行是个空行,这是很巧妙的,<?php ... ?>之外的东西都被当成标准输出进行输出。
例子2-命令行参数($argc,$argv,always $argc>=1):
#
!/usr/bin/php
<?
php
if
(
$argc
==
1
) {
#
one argument ( it self )
echo
"
no command line arguments.
"
;
exit
;
}
echo
"
Command line arguments:
"
;
for
(
$i
=
0
;
$i
<
$argc
;
$i
++
)
echo
"
$argv[$i]
"
;
?>
事实上,如果使用的是cgi版本,那么上面的第一行要加上参数-f,成为#!/usr/bin/php -f。
控制台解释器有两种,一种是cgi的,它会生成带有http头输出;另外一种是 纯cli(Command Line Interface)的,它不会生成http头。使用方法都是一样的,记得不要通过标准输入来输入程序,而要用php -f filename。输入php -v可以知道你的php是哪一种。然而,我发现其实cgi的似乎也会产生不带http头的输出。linux下编译后安装cli,要执行make install-cli。下面两个例子都是可以直接在控制台中执行的,只要加上x权限。详细资料,请阅读官方文档: http://www.php.net/manual/zh/features.commandline.php。
例子1-标准输入、输出(STDIN, STDOUT, STDERR):






例子2-命令行参数($argc,$argv,always $argc>=1):









事实上,如果使用的是cgi版本,那么上面的第一行要加上参数-f,成为#!/usr/bin/php -f。