在 Linux 命令行中使用和执行 PHP 代码

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命令行解释器。

  1. # apt-get install php5-cli [Debian 及类似系统]
  2. # yum install php-cli [CentOS 及类似系统]

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

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

然后,将浏览器访问 http://127.0.0.1/infophp.php ,这将会在网络浏览器中打开该文件。

检查PHP信息

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

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

从命令行检查PHP信息

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

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

检查所有PHP信息

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

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

  1. # php -r ‘phpinfo();‘

PHP调试工具

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

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

  1. # php -a
  2. Interactive shell
  3. php > echo 2+3;
  4. 5
  5. php > echo 9-6;
  6. 3
  7. php > echo 5*4;
  8. 20
  9. php > echo 12/3;
  10. 4
  11. php > echo 12/5;
  12. 2.4
  13. php > echo 2+3-1;
  14. 4
  15. php > echo 2+3-1*3;
  16. 2
  17. php >exit

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

启用PHP交互模式

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

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

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

其次,让该脚本可执行:

  1. # chmod 755 phpscript.php

接着来运行它,

  1. # ./phpscript.php

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

开启PHP交互模式。

  1. # php -a

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

  1. php >function addition ($a, $b)

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

  1. php >{

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

  1. php { echo $a + $b;

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

  1. php {}

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

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

样例输出

  1. 7NULL

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

  1. php > var_dump (addition(a,b));

  1. php > var_dump (addition(9,3.3));

样例输出

  1. 12.3NULL

创建PHP函数

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

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

替换

  1. php { echo $a + $b;

  1. php {return $a + $b;

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

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

PHP函数

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

6. 设置PHP命令行提示符

要设置PHP命令行提示,你需要在Linux终端中使用下面的php -a(启用PHP交互模式)命令开启一个PHP交互shell。

  1. $ php -a

然后,设置任何东西(比如说Hi Tecmint ::)作为PHP交互shell的命令提示符,操作如下:

  1. php >#cli.prompt=Hi Tecmint ::

启用PHP交互Shell

同时,你也可以设置当前时间作为你的命令行提示符,操作如下:

  1. php >#cli.prompt=`echo date(‘H:m:s‘);` >
  2. 22:15:43>

7. 每次输出一屏

在我们上一篇文章中,我们已经在原始命令中通过管道在很多地方使用了less命令。通过该操作,我们可以在那些不能一屏全部输出的地方获得分屏显示。但是,我们可以通过配置php.ini文件,设置pager的值为less以每次输出一屏,操作如下:

  1. $ php -a
  2. php >#cli.pager=less

限制PHP屏幕输出

这样,下次当你运行一个命令(比如说条调试器phpinfo();)的时候,而该命令的输出内容又太过庞大而不能固定在一屏,它就会自动产生适合你当前屏幕的输出结果。

  1. php > phpinfo();

PHP信息输出

8. 建议和TAB补全

PHP shell足够智能,它可以显示给你建议和进行TAB补全,你可以通过TAB键来使用该功能。如果对于你想要用TAB补全的字符串而言有多个选项,那么你需要使用两次TAB键来完成,其它情况则使用一次即可。

如果有超过一个的可能性,请使用两次TAB键。

  1. php > ZIP [TAB][TAB]

如果只有一个可能性,只要使用一次TAB键。

  1. php >#cli.pager [TAB]

你可以一直按TAB键来获得建议的补全,直到该值满足要求。所有的行为都将记录到~/.php-history文件。

要检查你的PHP交互shell活动日志,你可以执行:

  1. $ nano ~/.php_history | less

检查PHP交互Shell日志

9. 你可以在PHP交互shell中使用颜色,你所需要知道的仅仅是颜色代码。

使用echo来打印各种颜色的输出结果,类似这样:

  1. php > echo "color_code1 TEXT second_color_code";

具体来说是:

  1. php > echo "\033[0;31m Hi Tecmint \x1B[0m";

在PHP Shell中启用彩色

到目前为止,我们已经看到,按回车键意味着执行命令,然而PHP Shell中各个命令结尾的分号是必须的。

10. 在PHP shell中用basename()输出路径中最后一部分

PHP shell中的basename函数可以从给出的包含有到文件或目录路径的最后部分。

basename()样例#1和#2。

  1. php > echo basename("/var/www/html/wp/wp-content/plugins");
  2. php > echo basename("www.tecmint.com/contact-us.html");

上述两个样例将输出:

  1. plugins
  2. contact-us.html

在PHP中打印基本名称

11. 你可以使用PHP交互shell在你的桌面创建文件(比如说test1.txt),就像下面这么简单

  1. php> touch("/home/avi/Desktop/test1.txt");

我们已经见识了PHP交互shell在数学运算中有多优秀,这里还有更多一些例子会令你吃惊。

12. 使用PHP交互shell打印比如像tecmint.com这样的字符串的长度

strlen函数用于获取指定字符串的长度。

  1. php > echo strlen("tecmint.com");

在PHP中打印字符串长度

13. PHP交互shell可以对数组排序,是的,你没听错

声明变量a,并将其值设置为array(7,9,2,5,10)。

  1. php > $a=array(7,9,2,5,10);

对数组中的数字进行排序。

  1. php > sort($a);

以排序后的顺序打印数组中的数字,同时打印序号,第一个为[0]。

  1. php > print_r($a);
  2. Array
  3. (
  4. [0]=>2
  5. [1]=>5
  6. [2]=>7
  7. [3]=>9
  8. [4]=>10
  9. )

在PHP中对数组排序

14. 在PHP交互Shell中获取π的值

  1. php > echo pi();
  2. 3.1415926535898

15. 打印某个数比如32的平方根

  1. php > echo sqrt(150);
  2. 12.247448713916

16. 从0-10的范围内挑选一个随机数

  1. php > echo rand(0,10);

在PHP中获取随机数

17. 获取某个指定字符串的md5校验和sha1校验,例如,让我们在PHP Shell中检查某个字符串(比如说avi)的md5校验和sha1校验,并交叉校验bash shell生成的md5校验和sha1校验的结果。

  1. php > echo md5(avi);
  2. 3fca379b3f0e322b7b7967bfcfb948ad
  3. php > echo sha1(avi);
  4. 8f920f22884d6fea9df883843c4a8095a2e5ac6f

  1. $ echo -n avi | md5sum
  2. 3fca379b3f0e322b7b7967bfcfb948ad-
  3. $ echo -n avi | sha1sum
  4. 8f920f22884d6fea9df883843c4a8095a2e5ac6f-

在PHP中检查md5校验和sha1校验

http://www.tecmint.com/run-php-codes-from-linux-commandline/

http://www.tecmint.com/execute-php-codes-functions-in-linux-commandline/

时间: 2024-12-25 11:21:29

在 Linux 命令行中使用和执行 PHP 代码的相关文章

如何在Linux命令行中剪裁图像

涉及到在Linux中转换或编辑图像文件时,ImageMagick毫无疑问是最为熟知的一体化软件之一.它包含了一整套命令行工具,用以显示.转换,或复制超过200中类型的光栅或矢量图像文件,所有这一切都在命令行下完成.ImageMagick可以用于多样化的图像编辑工作,如转换文件格式,添加特殊效果,添加文本,以及改变图像(调整大小.旋转.翻转.剪裁). 如果你想要剪裁映像以去除空白,你可以使用ImageMagick自带的两个命令行工具.如果你还没有安装ImageMagick,请参照本指南来安装. 在

Linux命令行中对表格类型文本的几处操作总结

Linux命令行中对打印成表格类型的文本进行操作 先创建一个文件list.txt,包含三列数据(姓名.年龄.职业) 每行一组数据,每组数据不同的列,用空格隔开 Tsybius 23 ProgrammerGalatea 21 SwordsmanGaius 20 UnknownFenix 25 EngineerJulia 22 MerchantTsybius 23 ProgrammerTsybius 23 ProgrammerXenia 15 StudentFlavia 29 TeacherGaiu

如何在Linux命令行中创建以及展示演示稿

你在准备一场演讲的时候,脑海可能会先被图文并茂.形象华丽的演示图稿所占据.诚然,没有人会否认一份生动形象的演讲稿所带来的积极作用.然而,并非所有的演讲都需要TED Talk的质量.更多时候,演讲稿只为传达特定的信息. 而这个,使用文本信息足以完成.在这种情况下,你的时间可以更好的花在信息的搜集和核实上面,而不是在谷歌图片搜索(Google Image)上寻找好看的图片. 在Linux的世界里,有几个不同的方式供你选择来做演讲.比如带有大量多媒体展示.视觉冲击效果极佳的Impress.js,专为L

在Linux命令行中设置并使用代理服务器

[前言] 在使用apt-get或git pull或wget的时候经常因为国内网络限制的原因而考虑使用代理服务器,这个时候就需要在命令行中设置代理,同时又不影响系统的代理设置. [方法] 可以通过三种方法设置代理服务器方法一在终端中直接运行命令 export http_proxy=http://proxyAddress:port 这个办法的好处是简单直接,并且影响面很小(只对当前终端有效).方法二把代理服务器地址写入shell配置文件 vi ~/.bashrc 文件末尾添加如下内容 http_pr

在linux命令行中直接执行php命令

有时候用浏览器调试太麻烦,想在linux命令下直接执行php代码 php -r 'echo 0500;'

Linux命令行中执行多个命令

[[email protected] /]# date;date;date 2019年 05月 03日 星期五 09:08:37 CST 2019年 05月 03日 星期五 09:08:37 CST 2019年 05月 03日 星期五 09:08:37 CST [[email protected] /]# date&& data&&date 2019年 05月 03日 星期五 09:09:03 CST -bash: data: 未找到命令 [[email protected

linux命令行传递参数定期执行PHP文件

最近在做一个项目,需要在linux下传递参数定期执行PHP文件,网上查询资料,确实有相关资料,现整理如下: 1.linux执行PHP文件 #{PHP安装bin路径} {PHP文件路径} {需要参数1 参数2 参数3}#各参数之间,用空格分开#查看php安装bin路径 可执行which php命令 /usr/bin/php /local/www/index.php 111 222 333 2.接收参数 一般情况下,php接收命令行传递过来的参数,$argv保存所有参数组成的数组,$argc保存参数

Linux命令行中排版格式的一个好用的命令

1.需求场景 在输入Linux命令的时候,想要字符界面显示类似于表格一样的排版. 2.语法说明 用法: column [选项] [文件 ...] 选项: -c, --columns <宽度> 输出宽度(字符数) -t, --table 创建表格 -s, --separator <字符串> 可用的表格分隔符 -o, --output-separator <字符串> 表格输出列分隔符,默认为两个空格 -x, --fillrows 先填充行,再填充列 -h, --help 显

linux 命令行中常用光标移动快捷键

对linux不怎么熟悉,以前在linux中敲命令的时候,要移动光标,傻傻的一个一个的移动,感觉特不爽.有几个常用的快捷键. ctrl+左右键:在单词之间跳转 ctrl+a:跳到本行的行首 ctrl+e:跳到页尾 Ctrl+u:删除当前光标前面的文字 ctrl+k:删除当前光标后面的文字 Ctrl+L:进行清屏操作 Ctrl+y:进行恢复删除做 Ctrl+w:删除光标前面的单词的字符 Alt – d :由光标位置开始,往右删除单词.往行尾删 更加详细的快捷键请猛击下面的链接地址 http://co