前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何编写一个PHP解释器文件

如何编写一个PHP解释器文件

作者头像
北溟有鱼QAQ
发布2021-02-26 14:58:37
7910
发布2021-02-26 14:58:37
举报
文章被收录于专栏:北溟有鱼QAQ北溟有鱼QAQ

什么是解释器

  • 概念

解释器文件是一种文本文件,它第一行的形式为:#! pathname [optional-argument]在!和 pathname 之间的空格不是必要的,可以根据需求选择有无。pathname 指的是绝对路径名,[optional-argument] 指的是可选参数。

PHP脚本执行程序

  1. 在linux中,我们来执行php程序,一般是使用命令php xxxx.php 这样来执行,接下来我们编写这样一个程序运行一下,而下面这个图片则是在linux下运行php脚本的过程

解释器文件

上面介绍了解释器文件的概念以及书写形式,接下来咱们编写一个php解释器文件

1、查找linux中,你安装的php可执行文件,如果是编译安装的相信大家都能找到,如果不是编译安装的,大家可以通过whereis php 这个命令来查看,我这里不是编译安装的,所以先查看一下本地的php可执行文件的路径

因为不是编译安装的,所以大家看到查出来很多个,但正常的一般都安装在/usr/bin/php 目录下

2、编写可执行文件

3、编写好可执行文件后,要查看编写文件的权限,如果没有可执行权限,要给可执行权限

4、当给可执行的权限后,我们就可以执行这个文件了

通过以上两种方式,我们都可以得到我们想要的结果。而解释器最大的好处就是使用户得到效率方面的好处,其代价是内核的额外开销(因为识别解释器文件的是内核)

扩展

在PHP中,我们有没有见到过这样的可执行文件呢,答案肯定是见到过。首先在easyswoole的脚本文件中,我们也会看到所谓的解释器文件,那么他是用来干什么的呢?

代码语言:javascript
复制
#!/usr/bin/env php
<?php

$file = null;
foreach ([__DIR__ . '/./vendor/bin/easyswoole', __DIR__ . '/./bin/easyswoole'] as $file) {
    if (file_exists($file)) {
        require $file;
        break;
    }
}
if(!file_exists($file)){
    die("include /vendor/bin/easyswoole fail\n");
}

通过上面编写解释器文件的过程,想必大家也能猜出来

  • 首先就是查找linux系统中,安装的PHP,也就是找到对应的php可执行文件
  • 其次就是为了兼容用户的程序,使代码具有扩展性
通过这篇文章,希望大家下次见到这种格式的代码不会在懵逼了哦

本文为北溟有鱼QAQ原创文章,转载无需和我联系,但请注明来自北溟有鱼QAQ https://www.umdzz.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-02-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是解释器
    • PHP脚本执行程序
      • 解释器文件
        • 扩展
          • 通过这篇文章,希望大家下次见到这种格式的代码不会在懵逼了哦
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档