PHP是一门当下十分风行的语言,因其简朴、免费、高效和跨平台等特点受到编程喜好者的青睐。PHP是主要运用于WEB开拓的动态语言,现已有上百万的处事器支持PHP。由于PHP措施语言凡是用于提供WEB处事而设置于处事端,在实际运用时,出于处事器的机能思量,凡是会对处事器会响应时间时行限制,以过滤长时间无响应或过长响应时间的请求,因此有时候在处理惩罚大量数据时,利用WEB方法则不太适合,此时可以操作PHP的呼吁行执行接口(command line interface)来办理相应的问题。
固然PHP呈现的初志是为了动态网页的开拓,但PHP亦包括了PHP CLI呼吁接口,这也就意味着PHP不只可以写网页,还可以用于靠山措施的编程。PHP CLI的编写方法与网页的编写一样,区别在于参数和运行方法的差异。提供WEB处事时,凡是处事器配置的默认响应时长为30秒,而CLI默认的运行时间是无限制的,这也是为什么用它来处理惩罚数据量较大时的环境。
1 PHP CLI支持三种运行方法
(1)直接运行语句。支持在终端窗口,如Windows系统的呼吁窗口中直接执行相关语,利用这种要领时,需要留意外壳变量的替代及引号的利用,而且在运行代码时没有开始和竣事的标志符,加上“-r”参数后,这些标志符是不需要的,加上它们会导致语法错误。
(2)通过PHP角本执行。
首先编写好PHP角本,譬喻取名为cli.php文件,且代码如下
<?php echo “It is come from CLI”; ?>
接着,在呼吁窗口中直接挪用cli.php角本
php e:/cli.php
此时角本中的内容被完整的输出了,与传统的网页输出一样,区别是内容在呼吁窗口中显示出来。
(3)通过尺度输入(stdin)提供需要运行的PHP代码,动态地生成PHP代码并通过呼吁行运行这些代码。
需要留意的是,以上三种方法不能同时利用。在实际开拓应用中,由于差异的系统情况设置会产生变革,由此将导在运行时路径、参数均大概差异,在此主要接头基于1.2中的种方法在Windows系统下的应用。
2 留意事项
2.1 路径问题
在PHP CLI模式下运行时,系统不会把事情目次自动变动为剧本当前地址的目次,这是其区别CGI模式运行差异的一点,因此在措施生成批处理惩罚文件时,需要在角本中获取其正确的路径而且生存到设置文件中,以利便后期措施运行时的挪用。
另外,在此模式下执行PHP时必需要用绝对路径,包罗角本间的彼此引用,除非角本是处于同级目次下。
empty($_SERVER['CONTEXT_DOCUMENT_ROOT'])?$_SERVER['DOCUMENT_ROOT']:$_SERVER['CONTEXT_DOCUMENT_ROOT'];
以上代码可获取当前站点的事情目次,但要留意的是这仅是,假如为了担保操纵系统的通用性和可移植性,可以利用DIRECTORY_SEPARATOR常量来对路径中的脱离符举办替换处理惩罚。
2.2 数据库会见题
CLI模式下毗连数据库时,假如无法正确毗连,原因大概是多样的,凡是环境下通过指定php.ini文档的地址位置可办理此问题,详细要领是通过“php --ini”呼吁查察相关信息,个中的Loaded Configuration File选项即为此文档的实际路径。通过简朴的代码,便可获取此值,并应用于措施中。而在措施挪用时,利用如下名目标代码,将php.ini文档的路径作为参数举办通报。
php –c [php.ini路径]
2.3 参数问题
PHP CLI带有两个非凡的变量,专门用来到达这个目标:一个是$argv变量,它通过呼吁行把通报给PHP剧本的参数生存为单独的数组元素;另一个是$argc变量,它用来生存$argv数组里元素的个数。可编写如下简朴代码。
<?php var_dump($argv); ?>
再以CLI模式运行这代码:
php e:/cli.php hello world 0
系统最终将会输出
array(4) {
[0]=> string(10) "e:/cli.php"
[1]=> string(5) "hello"
[2]=> string(5) "world"
[3]=> string(1) "0"
}
从输出的功效可以看到,通报给cli.php的值会自动地作为数组元素呈此刻$argv里,可以很利便的挪用。但在利用时同样要留意几点:
(1)$argv的第一个自变量老是剧本本身的名称,因此在涉及参数挪用时,应该从数组下标为1的元素开始。
(2)差异的参数是以空格来区分的,如若要把hello world作为一个参数,则应该利用引号(”)将他们包括起来,这样措施会认为这两个单词为一个字符串参数。
(3)数值作为参数通报时,也被视为字符型,因此假如在措施的编写进程中对变量范例有严格的要求时,需要寄望这一点。
3 通过剧本生成批处理惩罚文件。
通过前边所述道理角本的编写,措施可实现按照实际系统情况变量来动态调取措施运行时所需的相关参数。为了共同PHP CLI模式的利用,可以将获取到的参数生存到相关的设置文件并同时生成对庆的批处理惩罚呼吁。
生成设置文件时,发起生成PHP文档名目,这样做可以利便PHP角本的挪用。而生成批处理惩罚呼吁时,为了正确挪用php.exe,可利用如下代码来获取此文件绝对路径:
realpath($_SERVER['PHPRC']).DIRECTORY_SEPARATOR.'php.exe'
从此直接运行措施自动生成的批处理惩罚呼吁,便可通过CLI方法直接执行相应的PHP角原来完成大量数据的处理惩罚任务了,不外批处理惩罚措施的生成及运行是在处事器端,因此用户必需要拥有处事端的会见权和打点权。
这是其区别CGI模硕士论文毕业式运行不同的一点
毕业论文库:计算机 时间:2016-12-28 点击:
次