CLI(
命令行
界面)是PHP的命令行,现在SAPI是
默认安装的,我们安装PHP的
服务器后,通常会生成一个可
执行文件,该文件是 / usr /局部/斌/ PHP,那么我们可以用下面的命令在shell执行PHP
脚本:
复制代码代码如下所示:
/ usr /局部/斌/ PHP -f test.php
以CLI SAPI为例解析PHP execution.cli
核心部分是PHP的命令行
模式。这是默认安装的SAPI。在服务器安装了PHP之后,它生成一个
可执行文件,并且可以通过调用PHP命令在shell中执行。
复制代码代码如下所示:
PHP - F xx.php
执行过程:
解析命令行
参数;
初始化环境;
编译和执行PHP代码;
清理环境和出口;
在第三个阶段中,如何执行PHP脚本:
通过调用php_execute_script(handle_file)完成第三阶段的
函数最终调用zend_execute_scipts(…),这个函数是一个可变参数函数,可以同时执行多个PHP脚本。
在zend_execut_scripts(......)核心的
功能调用两个函数(zend_compile_file)(compile_file),(* zend_execute)(zend_op_array);
通过调用由zend_compile_file编译器参数指定的PHP脚本文件,函数返回一个zend_op_array结构指针;
参数传递是zend_execute的zend_compile_file返回值,和
操作码是开始。
这两个功能是Zend API函数指针返回值的具体
方法,当引擎初始化。
PS.:所以为什么这两个Zend API函数指针
当引擎初始化,zend_execute和zend_compile_file指向默认的方法初始化引擎之后,我们可以编译和执行的重写函数的方向,我们把钩当我们将
发动机。例如,VLD点的zend_execute和zend_compile_file的功能已由原来的函数封装,添加操作码信息输出。