PHP是一个开源服务器端脚本语言,最初这三个字母代表的是“Personal Home Page”,而现在则代表的是“PHP:Hypertext Preprocessor”,它是个递归首字母缩写。它是一个跨平台脚本语言,深受C、C++和Java的影响。

在 Linux 命令行中运行 PHP 代码

PHP的语法和C、Java以及带有一些PHP特性的Perl变成语言中的语法十分相似,它当下大约正被2.6亿个网站所使用,当前最新的稳定版本是PHP版本5.6.10。

PHP是HTML的嵌入脚本,它便于开发人员快速写出动态生成的页面。PHP主要用于服务器端(而Javascript则用于客户端)以通过HTTP生成动态网页,然而,当你知道可以在Linux终端中不需要网页浏览器来执行PHP时,你或许会大为惊讶。

本文将阐述PHP脚本语言的命令行方面。

1. 在安装完PHP和Apache2后,我们需要安装PHP命令行解释器。

# apt-get install php5-cli [Debian 及类似系统]

# yum install php-cli [CentOS 及类似系统]

接下来我们通常要做的是,在/var/www/html(这是 Apache2 在大多数发行版中的工作目录)这个位置创建一个内容为 <?php phpinfo(); ?>,名为 infophp.php 的文件来测试(PHP是否安装正确),执行以下命令即可。

# echo '<?php phpinfo(); ?>' > /var/www/html/infophp.php

检查PHP信息

不需要任何浏览器,在Linux终端中也可以获得相同的结果。在Linux命令行中执行/var/www/html/infophp.php,如:

# php -f /var/www/html/infophp.php

从命令行检查PHP信息

由于输出结果太大,我们可以通过管道将上述输出结果输送给 less 命令,这样就可以一次输出一屏了,命令如下:

# php -f /var/www/html/infophp.php | less

检查所有PHP信息

这里,‘-f‘选项解析并执行命令后跟随的文件。

2. 我们可以直接在Linux命令行使用phpinfo()这个十分有价值的调试工具而不需要从文件来调用,只需执行以下命令:

# php -r 'phpinfo();'

PHP调试工具

这里,‘-r‘ 选项会让PHP代码在Linux终端中不带标记直接执行。

3. 以交互模式运行PHP并做一些数学运算。这里,‘-a‘ 选项用于以交互模式运行PHP。

# php -a

Interactiveshell

php>echo2+3;

5

php>echo9-6;

3

php>echo5*4;

20

php>echo12/3;

4

php>echo12/5;

2.4

php>echo2+3-1;

4

php>echo2+3-1*3;

2

php>exit

输入 ‘exit‘ 或者按下 ‘ctrl+c‘ 来关闭PHP交互模式。

启用PHP交互模式

4. 你可以仅仅将PHP脚本作为shell脚本来运行。首先,创建在你当前工作目录中创建一个PHP样例脚本。

# echo -e '#!/usr/bin/php\n<?php phpinfo(); ?>' > phpscript.php

注意,我们在该PHP脚本的第一行使用#!/usr/bin/php,就像在shell脚本中那样(/bin/bash)。第一行的#!/usr/bin/php告诉Linux命令行用 PHP 解释器来解析该脚本文件。

其次,让该脚本可执行:

# chmod 755 phpscript.php

接着来运行它,

# ./phpscript.php

5. 你可以完全靠自己通过交互shell来创建简单函数,这你一定会被惊到了。下面是循序渐进的指南。

开启PHP交互模式。

# php -a

创建一个函数,将它命名为 addition。同时,声明两个变量 $a 和 $b。

php>functionaddition($a,$b)

使用花括号来在其间为该函数定义规则。

php>{

定义规则。这里,该规则讲的是添加这两个变量。

php{echo $a+$b;

所有规则定义完毕,通过闭合花括号来封装规则。

php{}

测试函数,添加数字4和3,命令如下:

php>var_dump(addition(4,3));

样例输出

7NULL

你可以运行以下代码来执行该函数,你可以测试不同的值,你想来多少次都行。将里头的 a 和 b 替换成你自己的值。

php>var_dump(addition(a,b));php>var_dump(addition(9,3.3));

样例输出

12.3NULL

创建PHP函数

你可以一直运行该函数,直至退出交互模式(ctrl+z)。同时,你也应该注意到了,上面输出结果中返回的数据类型为 NULL。这个问题可以通过要求 php 交互 shell用 return 代替 echo 返回结果来修复。

只需要在上面的函数的中 ‘echo‘ 声明用 ‘return‘ 来替换

替换

php{echo $a+$b;

php{return$a+$b;

剩下的东西和原理仍然一样。

这里是一个样例,在该样例的输出结果中返回了正确的数据类型。

PHP函数

永远都记住,用户定义的函数不会从一个shell会话保留到下一个shell会话,因此,一旦你退出交互shell,它就会丢失了。

希望你喜欢此次教程。保持连线,你会获得更多此类文章。保持关注,保持健康。请在下面的评论中为我们提供有价值的反馈。点赞并分享,帮助我们扩散。

PHP 的详细介绍:请点这里

PHP 的下载地址:请点这里

本文由 LCTT 原创翻译,Linux中国 荣誉推出

linux php 指令,在 Linux 命令行中使用和执行 PHP 代码(一)相关推荐

  1. 在 Linux 命令行中使用和执行 PHP 代码(一)

    PHP是一个开源服务器端脚本语言,最初这三个字母代表的是"Personal Home Page",而现在则代表的是"PHP:Hypertext Preprocessor& ...

  2. linux命令行安装 php_如何在 Linux 命令行中使用和执行 PHP 代码

    PHP是一个开源服务器端脚本语言,最初这三个字母代表的是"Personal Home Page",而现在则代表的是"PHP:Hypertext Preprocessor& ...

  3. linux命令行的 是啥意思,linux是什么 Linux 命令行中的21是什么意思

    50970"> Linux 命令行中的2>&1究竟是什么意思?linux是什么. Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的 ...

  4. mysql隐藏密码_MySQL在Linux系统中隐藏命令行中的密码的方法

    在命令行中输入命令并不是一个好主意,会造成安全问题.但是如果你决定去写一个应用,而这个应用需要在命令行中使用密码或者其他敏感信息.那么,你能通过以下方法禁止系统的其他用户轻易的看到这些敏感数据 呢?, ...

  5. linux命令行 正则,在Linux命令行中使用正则表达式

    上一节我们介绍过grep命令在搜索文本信息时的基本用法,其实,grep命令还可以配合正则表达式执行更加复杂的搜索操作. 本节我们将对如何在Linux命令行中使用正则表达式进行介绍. 所谓正则表达式,就 ...

  6. linux命令行中,双引号中的感叹号将被解释为历史命令

    linux命令行中,双引号中的感叹号将被解释为历史命令. 命令: test -e ttt/ && echo "file exist!" || echo " ...

  7. linux裁剪图片的软件,ImageMagick教程:如何在Linux命令行中剪裁图像

    问题:我想要去除图像文件中的白色空白,有没有什么便捷的方法能在Linux命令行中对图像文件进行剪裁? 当涉及到在Linux中转换或编辑图像文件时,ImageMagick毫无疑问是最为熟知的一体化软件之 ...

  8. linux命令行怎么播放,如何在在 Linux 命令行中观看彩虹猫

    导读 在本系列文章中,我们将会探索一些娱乐用途(甚至有时完全没用)的 Linux 命令行小玩具.所有我们介绍的小玩具都是开源的. 你甚至可以在终端里欣赏彩虹猫. 也许你会问,它们都很独特吗?是的.不过 ...

  9. 在Linux系统的命令行中为MySQL创建用户的方法

    这篇文章主要介绍了在Linux系统的命令行中为MySQL创建用户的方法,包括对所建用户的权限管理,需要的朋友可以参考下 要访问一个MySQL服务器,你需要使用一个用户帐号登录其中方可进行.每个MySQ ...

最新文章

  1. python中forward的参数_如何将关键字参数传递给preforward钩子使用的forward?
  2. Using AVStream.codec.time_base as a timebase hint to the muxer is deprecated
  3. 2、掌握C++基本语法
  4. 【安全漏洞】ProxyShell漏洞复现详解
  5. mongodb空间查询之查询单位
  6. Token 认证的来龙去脉,DRF认证,DRF权限,DRF限制
  7. MySQL的my.cnf文件(解决5.7.18下没有my-default.cnf)
  8. .NET架构开发应知应会
  9. inputtextarea表单提示文字
  10. java编码规范试题_java编码规范考试题答案完整版.doc
  11. 苍井空详细介绍(婚后生活)
  12. 关于从asc格式到pcd格式的转换
  13. 关于我在《大话5G》这本书里学到了什么——5G和物联网不得不说的关系
  14. 计算机专业 外文数据库,计算机专业外文翻译+原文-数据库管理系统介绍
  15. 董文永武汉大学计算机学院,董文永 - 教师简历 CV- Computer School of Wuhan University...
  16. 图片分享和加载失败的原因之一
  17. 数理统计(三)-假设检验:显著性水平α、检验统计量、原假设、备择假设、拒绝域、临界点、第Ⅰ类错误、第Ⅱ类错误、【检验μ、检方差、检验分布】、临界值法【Z检验法、t检验法、卡方检验法、F检验法】、p值法
  18. 战地5离线bot模式_战地2怎么增加bot
  19. 通过access口加vlan标签吗_VLAN标签处理过程
  20. (加快设计)推荐一个SketchUp的3D模型库

热门文章

  1. CVE-2010-2883 从漏洞分析到样本分析
  2. linux php 升级5.3,Linux php5.2.10升级到PHP5.3.29
  3. 对c语言和程序设计基础的体会,C语言程序设计基础与应用
  4. onnx onnxruntime 预测
  5. python连接elasticsearch查询数据
  6. access violation reading 0x0000000000000020
  7. caffe 报错 Check failed: error == cudaSuccess (77 vs. 0) an illegal memory access was encounteredcaffe
  8. has invalid type class 'numpy.ndarray', must be a string or Tensor
  9. FILLED is not a menber of 'cv' in opencv2.4.9
  10. PMP-【第10章 项目沟通管理】-2021-2-16(220页-231页)