PHP的命令行执行方式
最近喜欢上了用PHP的命令行方式执行一些操作。
PHP的命令行方式详情可以看一下手册内容,写得很详细的。这里只说说自己在应用时的一些情况。
我主要是使用PHP5.2/5.3.x的Windows版本,默认情况下的php.exe就是CLI执行模式。php-win.exe是静默状态下的CLI,php-cgi.exe是CGI模式的执行,会有输出头信息。下面说的基本都是CLI模式进行执行的。
首先,相比而言,PHP的命令行方式执行PHP程序的效率要比以web方式执行要高一些,毕竟不经过web服务。而且对于持久执行时间的程序不需要加入时间限制函数set_time_limit()。另外,对于某些php.ini的配置选项也会强制被覆盖,比如:
register_argc_argv始终为true,这样你可以为要执行的php程序传入一些参数,然后使用$arge[x]进行调用,其中x为参数的顺序号,第一个参数为1,第二个为2……
implicit_flush也为true,这样只要PHP输出了内容就会立即显示在命令行窗口内,对于某些需要做监视的操作,比如做一些邪恶的采集操作,你可以随时观看进度(当然前提是你得把程序内的调试输出写好,方便浏览)
需要注意的是,如果要写使用命令行方式执行的php程序,如果要调用其他php文件需要以绝对路径进行引用,其实,在web中执行的话也最好这样写,这是一个好习惯,可以避免一些意外的目录权限问题。
还有就是,一些预定义变量也是不存在的,比如$_SERVER['HTTP']、$_SERVER['REMOTE_ADDR'
]等一些依赖web服务的变量。将程序的错误报告完全打开,你会发现哪些变量是未定义的,便于调整。
以上就是在使用过程中总结的一些零零散散的经验。
标签:PHP, Web, Windows, 经验