Linux下使用PHP命令行的参数详解 (linux 使用php命令行参数)

PHP是一种广泛使用的服务器端脚本语言,可以与各种后端数据库进行交互,生成动态网页内容。PHP在Linux系统中非常流行,因为Linux是一种开放源代码的操作系统,可以免费获取,而且PHP语言也是开源的,不需要额外的费用。除了在Web服务器中使用PHP之外,还可以在Linux命令行终端中使用PHP。这篇文章将向您介绍如何使用PHP命令行及其参数,以及如何使用PHP脚本执行各种任务。

一、PHP命令行的基本用法

在Linux上打开命令行终端,键入”php”命令,即可使用PHP命令行。

例如,我们可以使用命令“php -v”在终端中查看所安装的PHP版本:

“`

$ php -v

PHP 5.5.9-1ubuntu4.29 (cli) (built: Apr 20 2023 10:59:09)

“`

这将显示您当前PHP版本的信息。您还可以使用各种命令选项来控制PHP命令行的行为。

二、PHP命令行选项

以下是一些常用选项的示例:

1. -c:指定一个不同的php.ini配置文件。

“`

php -c /path/to/php.ini /path/to/script.php

“`

2. -f:指定要运行的PHP文件的路径。

“`

php -f /path/to/script.php

“`

3. -h:显示PHP命令行的帮助信息。

“`

php -h

“`

4. -i:显示PHP配置信息。

“`

php -i

“`

5. -r:允许直接在命令行中执行PHP代码。

“`

php -r ‘echo “Hello, World!\n”;’

“`

6. -s:允许从标准输入读取PHP代码。

“`

php -r ‘echo fread(STDIN, 1024);’

“`

7. -d:在运行时设置PHP配置参数。

“`

php -d max_execution_time=60 /path/to/script.php

“`

三、在PHP命令行中执行PHP脚本

您可以使用PHP命令行在终端中执行PHP脚本。脚本可以包含各种命令,例如连接到数据库,发送电子邮件,读取文件等。

例如,以下是一个简单的PHP脚本,可以在用户输入时返回“Hello, World!”:

“`

$name = readline(‘Enter your name: ‘);

echo “Hello, $name!\n”;

?>

“`

要执行该脚本,请从命令行键入:

“`

php /path/to/script.php

“`

您将被提示输入您的名称,并在输入后看到一条信息。

四、在PHP命令行中使用不同的输入输出

默认情况下,PHP命令行将从标准输入读取数据,并将输出发送到标准输出。但是,在某些情况下,您可能需要使用不同的输入和输出源。

可以使用以下方法更改输入输出:

1. $file = fopen(‘input.txt’, ‘r’);

“`

$name = fgets($file);

echo “Hello, $name!\n”;

fclose($file);

?>

php /path/to/script.php

“`

2. $output = fopen(‘output.txt’, ‘w’);

“`

$name = readline(‘Enter your name: ‘);

fwrite($output, “Hello, $name!\n”);

fclose($output);

?>

php /path/to/script.php > output.txt

“`

五、结论

PHP命令行是在Linux系统中使用PHP的一种方便的方式。您可以使用PHP命令行来执行各种任务,例如读取文件,发送电子邮件以及连接到数据库。在本文中,我向您介绍了如何使用PHP命令行及其参数,并演示了如何在PHP脚本中使用不同的输入输出源。现在您已经了解了PHP命令行的基本知识,希望您能够尝试使用它并创建出一个令人赞叹的应用程序。

相关问题拓展阅读:

谁用了linux系统来写php代码的?说一下实现步骤,我是win7系统,应该怎么操作?

1)你的网站空间是否支持伪静态?  这点很重要,不然一切都是白搭。你可以与空间的IDC商联系一下,如果是自己的服务器,那就更好办了,一般来说,空间都是支持伪静态的。Apache服务器伪静态相对简单,直接在.htaccess文件中加入相应伪静态规则即可;而IIS服务器伪静态的实现,则需要加载Rewrite组件,然后配置httpd.ini文件。2)开启DedeCms伪静态  a.后台-系统参数-核心设置-是否使用伪静态:选择“是”;  b.如果你启用了问答模块,则后台-系统参数-模块设置-是否使用伪静态:选择“是”;  c.创建栏目或批量增加栏目时,栏目列表选项:唯敬选择“使用动态页”;添加新文章时,发布选项:选择“仅动态浏览 ”。当然,你也可以更改他们的模板,让他们默认就是这两个值,一劳永逸。修改方法很简单,稍懂些HTML基础就行了,这里就不再累述了。  d.如果你的网站已经存在生成的静态栏目或文章HTML,那么只需在后台-系统-SQL命令行工具中执行如下语句:  update dede_arctype set isdefault=-1;  update dede_archives set iake=-1;  其中,dede是你安装时的数据表前缀,根据实际情况替换。  事实上,开启DedeCms伪静态支持并不能完全在后台配置,有很多地方还是需要手动修改的,期望官方完善。织梦DedeCms伪静态方法  织梦DedeCms伪静态,涉及到PHP源码的修改,你可以指祥慎借助Dreamweaver或是EditPlus一类编辑软件来操作。下面说下织梦DedeCms全站伪静态的实现方法,适用于V5.3以上版本。小拼的DedeCms伪静态测试环境是Windows IIS6,举一反三,Linux或其它服务器的伪静态实现原理都是一样的,只要搞清楚思路就行了。1)DedeCms首页伪静态  把站点根目录下index.html删除,以后不更新主页HTML即可,当然你也可以选择不使用动态首页。2)DedeCms频道列表页文章页伪静态  主要通过修改GetFileName()、GetTypeUrl()这两个函数实现。DedeCms V5.3、DedeCms V5.5和DedeCms V5.6版本,打开/include/channelunit.func.php进行修改。注意:DedeCms V5.7,此文件路径更改了,你打开/include/helpers/channelunit.helper.php即可。  a.将GetFileName()中的如下代码:  //动态文章  if($cfg_rewrite == ‘Y’)  {  return $GLOBALS.”/view-“.$aid.’-1.html’;  }替换为  //动态文章  if($cfg_rewrite == ‘Y’)  {  return “/archives/view-“.$aid.’-1.html’;  }将文章页默认的/plus/view-1-1.html链接格式改为/archives/view-1-1.html,这个随个人喜欢,不作更改也行。  b.将GetTypeUrl()中的如下代码:  //动态  $reurl = $GLOBALS.”/list.php?tid=”.$typeid;替换为  //动态  $reurl = “/category/list-“.$typeid.”.html”;这步必须修改,即让你的频道或是列表页URL变更为/category/list-1.html形式。3)DedeCms列表分页伪静态  打开/include/arc.listview.class.php,找到获取动态的分页列表宴桐GetPageListDM()函数末尾处:  $plist = str_replace(‘.php?tid=’, ‘-‘, $plist);替换为  $plist = str_replace(‘plus’, ‘category’, $plist);//将默认的plus替换成category  $plist = str_replace(‘.php?tid=’, ‘-‘, $plist);将列表分页默认链接格式/plus/list-1-2-1.html修改为/category/list-1-2-1.html,这步也可以不作更改。4)DedeCms文章分页伪静态  打开/include/arc.archives.class.php,找到获取动态的分页列表GetPagebreakDM()函数末尾片:  $PageList = str_replace(“.php?aid=”,”-“,$PageList);替换为  $plist = str_replace(‘plus’, ‘archives’, $plist);//将默认的plus替换成archives  $PageList = str_replace(“.php?aid=”,”-“,$PageList);这步不作修改也可以,只是个人喜好问题。5)DedeCmsTAG标签伪静态  DedeCms默认的TAG标签URL,形如/tags.php?/dedecms5.7/,非常之难看。打开/include/taglib/tag.lib.php,找到lib_tag()函数下的:  $row = $cfg_cmsurl.”/tags.php?/”.urlencode($row).”/”;替换为  $row = $cfg_cmsurl.”/tags/”.urlencode($row).”/”;到这里,TAG标签URL中的“.php?”号就去掉了。6)DedeCms搜索伪静态  DedeCms搜索URL静态化比较麻烦,附带参数多不说,参数也可能变化,像搜索结果分页的URL就特麻烦,伪静态规则匹配复杂。随州SEO就偷下懒,将搜索URL中“search.php?…”直接替换为“search.html?…”,至于“?”号之后的参数以任意字符进行匹配。  依次打开include文件夹下的channelunit.func.php、arc.searchview.class.php、arc.taglist.class.php以及/include/taglib/hotwords.lib.php,查找“search.php?”替换为“search.html?”即可。7)DedeCms问答伪静态  问答模块的伪静态实现比较简单,只要后台开启伪静态支持即可,至于个别页面,如ask目录下的browser.php、question.php以及include目录下的common.inc.php、functions.inc.php都需要简单修改才可以匹配伪静态规则。  注意一点,DedeCms V5.7问答模块整体升级了,之前的规则已经不适用了,小拼以后会专门写个教程供大家参考的。DedeCms伪静态规则  依照上面的步骤修改完毕,接下来配置好你的伪静态规则,DedeCms全站伪静态就完美实现了。1)IIS伪静态  打开httpd.ini文件,加入如下规则:  #首页伪静态规则,如果不使用动态首页,请勿必删除这一行,否则打开首页会出现死循环  RewriteRule ^(.*)/index\.html $1/index\.php   #列表页伪静态规则  RewriteRule ^(.*)/category/list-(+)\.html $1/plus/list\.php\?tid=$2   RewriteRule ^(.*)/category/list-(+)-(+)-(+)\.html $1/plus/list\.php\?tid=$2&TotalResult=$3&PageNo=$4   #文章页伪静态规则  RewriteRule ^(.*)/archives/view-(+)-(+)\.html $1/plus/view\.php\?arcID=$2&pageno=$3   #搜索伪静态规则  RewriteRule ^(.*)/search\.html(?:(\?.*))* $1/search\.php?$2   #TAG标签伪静态规则  RewriteRule ^(.*)/tags\.html $1/tags\.php   RewriteRule ^(.*)/tags/(.*)(?:(\?.*))* $1/tags\.php\?\/$2   RewriteRule ^(.*)/tags/(.*)\/(?:(\?.*))* $1/tags\.php\?\/$2\/   RewriteRule ^(.*)/tags/(.*)\/()(?:(\?.*))* $1/tags\.php\?\/$2\/$3   RewriteRule ^(.*)/tags/(.*)\/()\/(?:(\?.*))* $1/tags\.php\?\/$2\/$3\/   #问答伪静态规则,适用于DedeCmsV5.3-5.6版本,需要修改几处程序  RewriteRule ^(.*)/post\.html $1/post\.php   RewriteRule ^(.*)/type\.html $1/type\.php   RewriteRule ^(.*)/question-(+)\.html $1/question\.php\?id=$2   RewriteRule ^(.*)/browser-1-(+)\.html $1/browser\.php\?tid=$2   RewriteRule ^(.*)/browser-2-(+)\.html $1/browser\.php\?tid2=$2   RewriteRule ^(.*)/browser-1-(+)-(+)\.html $1/browser\.php\?tid=$2&page=$3   RewriteRule ^(.*)/browser-2-(+)-(+)\.html $1/browser\.php\?tid2=$2&page=$3   RewriteRule ^(.*)/browser-(+)\.html $1/browser\.php\?lm=$2   RewriteRule ^(.*)/browser-1-(+)-(+)\.html $1/browser\.php\?tid=$2&lm=$3   RewriteRule ^(.*)/browser-2-(+)-(+)\.html $1/browser\.php\?tid2=$2&lm=$3 2)Apache伪静态  打开.htaccess文件,加入如下规则:  #提供部分规则作参考  RewriteRule ^category/list-(+)\.html$ /plus/list.php?tid=$1  RewriteRule ^category/list-(+)-(+)-(+)\.html$ /plus/list.php?tid=$1&totalresult=$2&PageNo=$3  RewriteRule ^archives/view-(+)-(+)\.html$ /plus/view.php?arcID=$1&pageno=$2

如何使用Linux的Crontab定时执行PHP脚本的方法

一、在Crontab中使用PHP执行脚本

就像在Crontab中调用普通的shell脚本一样(具体Crontab用法),使用PHP程序来调用PHP脚本。

每一小时执行迅顷myscript.php如下:

复制代码 代码如下:

# crontab -e

00 * * * * /usr/local/bin/php /home/john/myscript.php

/usr/local/bin/php为PHP程序的路径。

二、在Crontab中使用URL执行脚本

如果你的PHP脚本可以通过URL触发,你可以使用lynx或curl或wget来耐旅配置你的Crontab。

下面的例子是使用Lynx文本浏览器访问URL来每小时执行PHP脚本。Lynx文本浏览器默认使用对话方式打开URL。但是,像下面的,我们在lynx命令行中使用-dump选项来把URL的输出转换来标准输出。

复制代码 代码如下:

00 * * * * lynx -dump

下面的例子是使用CURL访问URL来每5分执行PHP脚本。Curl默认在标准输出显示输出。昌昌凳使用”curl -o”选项,你也可以把脚本的输出转储到临时文件。

复制代码 代码如下:

*/5 * * * * /usr/bin/curl -o temp.txt

下面的例子是使用WGET访问URL来每10分执行PHP脚本。-q选项表示安静模式。”-O temp.txt”表示输出会发送到临时文件。

复制代码 代码如下:

*/10 * * * * /usr/bin/wget -q -O temp.txt

键入 crontab

-e 编辑crontab服务文件

Ubuntu中的linux-

安装lynx包:apt-get isntall lynx

先写ln.sh脚本:lynx

设置定时:crontab -e

0 1 * * * bash /var/www/test/ln.sh

分为两种情况:

之一种情况:你的php脚本中没有引入其他PHP文件,也就是说没有include,require_once等命令的PHP文件

* */1 * * * /usr/local/php/bin/php

/var/www/html/wwwroot/web/script.php (每缓乎一小时执行一次script.php)

注意,这样写需要把PHP变成可执行的脚本文件。在命令行下,脚本所在目录

chmod +x script.php

注意:你的script.php文件中一定要在开始处加上: #!/usr/local/php/bin/php -q

,下面是一个完整的script.php文件代码

/usr/local/php/bin/php的意思是:用/usr/local/php/bin/目录中的php.exe文件来执行

/var/www/html/wwwroot/web/script.php

第二种情况:你的php脚本中有引入其他PHP文件,也就是说有用到include,require_once命令的PHP文件(先写shell脚本)

上面的方法有一个问题:当script脚本中有include文件时,脚本根本找不对PHP的路径,php将会在/bin/local/php目录下找文件,当然找不到。

所以,遇见这种情况,按照下面的方法做:

在终端上输入如下命令得到sh 和 lynx 程序的路径:

whereis sh

whereis lynx

or

which sh

which lynx

随便输入一个,其中便会返回你要的路径。如果你的系统里没有lynx,试试links,w3m,或者

links2,这些是其它的文本模型浏览器。这些浏览器将会运行你的脚本。

然后你需要创建一个sh文件,用它来调用php文件,通过lynx。假设你的服务器已经安装了lynx,sh路径为

/bin/sh,lynx路径为 /usr/local/bin/lynx

#!/bin/sh

/usr/local/bin/lynx -source

注意感叹号

把这个脚本保存为cron-lynx.sh

保存到一个你找得到的地方,比如:

你可以把它放在网站根目录。

然后再创建一个script.php的文件。当cron运行的时候,将会通过lynx来调用它。这个文件可以通过浏览器来访问。

然后编辑主机的crontab,像下面这样。

*/1 * * * * root /bin/sh

/usr/www/yourdirectory/sh_scripts/cron-lynx.sh

在/bin/sh 和 /usr 间有空格。就这样就设好了,还有一点要注意的是,你的sh文件和php文件都正确无误。

===================================================================================

linux下的crontab服务:

1、crontab 是用来让使用者在固定时间或固定间隔执行程序之用

在linux平台上如果需要实现任务调度功能可以编写cron脚本来实现。

以某一频率执行任务

linux缺省会启动crond进程,crond进程不需要用户启动、关闭。

crond进程负责读取调度任务并执行,用户只需要将相应的调度脚本写入cron的调度配置文件中。

cron的调度文件有以下几个:

1.

crontab

2.

cron.d

3.

cron.daily

4.

cron.hourly

5.

cron.monthly

6.

cron.weekly

如果用的任务不是以hourly monthly weekly方式执行,则可以将相应的crontab写入到crontab

或cron.d目录中。

示例:

每隔一分钟执行一次脚本 /opt/bin/test-cron.sh

可以在cron.d新建脚本 echo-date.sh

内容为

*/1 * * * * root /opt/bin/test-cron.sh

2、cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron

是Linux的内置服务,如果它不自动起来,可以用以下的方法启动、关闭这个服务:

/in/service crond start //启动服务

/in/service crond stop //关闭服务

/in/service crond restart //重启服务

/in/service crond reload //重新载入配置

你也可以将这个服务在系统启动的时候自动启动:

在/etc/rc.d/rc.local这个脚本的末尾加上:

/in/service crond start

现在Cron这个服务已经在进程里面了,我们就可以用这个服务了

查看服务是否已经运行用 ps -ax | grep cron

3、crontab命令

查看该用户下的crontab服务是否创建成功, 用 crontab -l

命令

命令 which php 查看linux下安装的php的路径

cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:

crontab -u

//设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数

crontab -l //列出某个用户cron服务的详细内容

crontab -r //删除没个用户的cron服务

crontab -e //编辑某个用户的cron服务

比如说root查看自己的cron设置:crontab -u root -l

再例如,root想删除fred的cron设置:crontab -u fred -r

在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e

进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls

>> /tmp/ls.txt

任务调度的crond常驻命令crond

是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此

任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。

crontab命令选项:

-u指定一个用户

-l列出某个用户的任务计划

-r删除某个用户的任务

-e编辑某个用户的任务

4、cron文件语法:

小时

星期

命令

0-59

0-23

1-31

command

(取值范围,0表示周日一般一行对应一个任务)

记住几个特殊符号的含义:

“*”代表取值范围内的数字,

“/”代表”每”,

“-”代表从某个数字到某个数字,

“,”分开几个离散的数字

5、任务调度设置文件的写法

可用crontab

-e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件

具体格式如下:

Minute Hour Day Month Dayofweek

command

分钟

小时

天每星期

命令

每个字段代表的含义如下:

Minute

每个小时的第几分钟执行该任务

Hour

每天的第几个小时执行该任务

Day

每月的第几天执行该任务

Month

每年的第几个月执行该任务

DayOfWeek

每周的第几天执行该任务

Command

指定要执行的程序

在这些字段里,除了“Command”是每次都必须指定的字段以外,其它字段皆为可选

字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。

举例如下:

*

*

*

*

ls

指定每小时的第5分钟执行一次ls命令

30

*

*

*

ls

指定每天的 5:30 执行ls命令

30

*

*

ls

指定每月8号的7:30分执行ls命令

30

6

*

ls

指定每年的6月8日5:30执行ls命令

30

*

*

0

ls

指定每星期日的6:30执行ls命令

以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。>

30

3

10,20

*

*

ls

每月10号及20号的3:30执行ls命令

25

8-11

*

*

*

ls

每天8-11点的第25分钟执行ls命令

*/15

*

*

*

*

ls

每15分钟执行一次ls命令

30

6

*/

*

*

ls

每个月中,每隔10天6:30执行一次ls命令

每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件

50

*

*

*

root

run-parts

/etc/cron.daily

注:run-parts参数表示,执行后面目录中的所有可执行文件。 >

6、 新增调度任务

新增调度任务可用两种方法:

1)、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。

2)、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。

7、 查看调度任务

crontab -l //列出当前的所有调度任务

crontab -l -u jp

//列出用户jp的所有调度任务

8、 删除任务调度工作

crontab -r //删除所有任务调度工作

9、 任务调度执行结果的转向

例1:每天5:30执行ls命令,并把结果输出到/jp/test文件中

30 5 * * * ls >/jp/test

2>&1

注:2>&1 表示执行结果及错误信息。

编辑/etc/crontab 文件配置cron

cron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次

/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。

用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:

  SHELL=/bin/bash

  PATH=/in:/bin:/usr/in:/usr/bin

  MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号

  HOME=/ //使用者运行的路径,这里是根目录

  # run-parts

  01

*

*

*

*

root run-parts

/etc/cron.hourly

//每小时执行/etc/cron.hourly内的脚本

4

*

*

*

root run-parts

/etc/cron.daily

//每天执行/etc/cron.daily内的脚本

22

4

*

*

0

root run-parts

/etc/cron.weekly

//每星期执行 /etc/cron.weekly内的脚本

42

4

1

*

*

root run-parts

/etc/cron.monthly

//每月去执行/etc/cron.monthly内的脚本

  大家注意”run-parts”这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了

例如:

1) 在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。

2)直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务

* rm -rf /mnt/fb

一、在Crontab中使用PHP执行脚本

#!/usr/local/bin/php -q 文件名

就像在Crontab中调用普通的shell脚本一样(具体Crontab用法),使用PHP程序来调用PHP脚本。

每一小时执行myscript.php如下:

# crontab -e

* * * * /usr/local/bin/php /home/john/myscript.php

/usr/local/bin/php为PHP程序的路径。

二、在Crontab中使用URL执行脚本

如果PHP脚本可以通过URL触发,可以使用lynx或curl或wget来配置Crontab。

下面的例子是使用Lynx文本浏览器访问URL来每小时执行PHP脚本。Lynx文本浏览器默认使用对话方式打开URL。但是,像下面的,我们在lynx命令行中使用-dump选项来把URL的输出转换来标准输出。

* * * * lynx -dump IP/myscript.php

下面的例子是冲孝型使用CURL访问URL来每5分执行PHP脚本。Curl默认在标准输出显示输出散猜。使用”curl -o”选项,也可以把脚本的输出转储到临时文件慎弊。

*/5 * * * * /usr/bin/curl -o temp.txt IP/myscript.php

下面的例子是使用WGET访问URL来每10分执行PHP脚本。-q选项表示安静模式。”-O temp.txt”表示输出会发送到临时文件。

1:使用crontab -e 可以编辑定时命令,配合亏厅 curl可以运行php页面的脚本

2:

例如

01 * * * * curl site/yourweb.php?do=youaction

linux 使用php命令行参数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux 使用php命令行参数,Linux下使用PHP命令行的参数详解,谁用了linux系统来写php代码的?说一下实现步骤,我是win7系统,应该怎么操作?,如何使用Linux的Crontab定时执行PHP脚本的方法的信息别忘了在本站进行查找喔。


数据运维技术 » Linux下使用PHP命令行的参数详解 (linux 使用php命令行参数)