谁可相欹 发表于 2015-2-3 23:33:20

PHP网站制作之PHP教程之PHP中shell剧本的利用办法

虽说不上很好,但至少一般的数据操作,再在原有的SQL语言的基础上,用得还是可以的。      咱们都晓得,在盘算机迷信中,SHELL相似于DOS下的command.com。它吸收用户号令,然后挪用响应的使用法式。同时它又是一种法式设计言语。作为号令言语,它交互式注释和履行用户输出的号令或主动地注释和履行事后设定好的连续串的号令;作为法式设计言语,它界说了各类变量和参数,并供应了很多在高阶言语中才具有的掌握布局,包含轮回和分支。
  PHP经由长工夫的开展,良多用户都很懂得PHP了,这里我宣布一下团体了解,和人人会商会商。大多半情形下,我利用 exec() 号令和数据数组处置一切器材。或对更复杂的号令利用 shell_exec(),特别是不关怀了局时。假如仅需前往一个 PHP shell剧本,我就利用 passthru()。凡是,我在分歧的场所中利用分歧的函数,而且有时它们是可以交换的。
  这完整取决于我的心境和要完成的目标。您能够发问的另外一个成绩是 “它们的优点是甚么?”。假如您没有眉目,或一个项目十分合适利用 shell 号令,但不晓得若何利用,那末我在这里供应一些看法。假如您正在编写一个供应各类备份或文件传输功效的使用法式,您可以选择利用 shell_exec() 或这里供应的其他号令之一运转 rsync 撑持的 PHP shell剧本。您可以编写 PHP shell剧本使其包括需要的 rsync 号令,然后利用 passthru() 依据用户的号令或 cron 功课履行它。
  例如,一名用户在您的使用法式中有恰当的权限(好比办理员权限),他想将 50 个 PDF 文件从一个办事器发送到另外一个办事器。那末,该用户需求在使用法式中导航到准确的地位,单击 Transfer,选择需求发送的 PDF,然后单击 Submit。在这个过程当中,该表单应当有一个 PHP 剧本,它利用前往选项变量经由过程 passthru() 运转 rsync 剧本,如许您就晓得是不是产生成绩,以下所示。
  清单 1. 经由过程 passthru() 运转 rsync 剧本的示例 PHP 剧本
<?php
passthru('xfer_rsync.sh',$returnvalue);
if ($returnvalue != 0){
//we have a problem!
//add error code here
}else{
//we are okay
//redirect to some other page
}
?>
   
  假如您的使用法式需求列出历程或文件,或关于这些历程或文件的数据,您可使用本文总结的号令之一轻松完成这个目标。例如,一个复杂的 grep 号令可以匡助您找到婚配特定搜刮前提的文件。将它与 exec() 号令一同利用可以将了局保留到一个数组中,这答应您构建一个 HTML 表或表单,它们又进一步答应您运转其他号令。
  到今朝为止,我会商了用户生成的事务 —— 用户只需按下按钮或单击链接,PHP 就运转响应的剧本。您还可以将自力的 PHP 剧本和 cron 或其另日程布置法式一同利用,从而完成一些风趣的后果。例如,假如您一个备份剧本,您可以经由过程 cron 运转它,或将它打包到 PHP 剧本后在运转。
  为何要如许做?这仿佛是过剩的,不是吗?不是如许的 —— 您需求如许思索,您可以经由过程 exec() 或 passthru() 运转备份剧本,然后依据前往代码履行一些行动。假如呈现毛病,您可以将其纪录到毛病日记或数据库中,或发送一封正告电子邮件。假如剧本胜利,您可以将原始的输入转储到数据库(例如,rsync 有一个详实(verbose)形式,对随后诊断成绩非常有效)。
  平安
  咱们在这里扼要会商一下平安性:假如您承受用户输出并将信息传递到 shell,那末最好过滤用户输出。删除您以为无害的号令和不答应的内容,好比 sudo(作为超等用户运转)或 rm(删除)。现实上,您能够不但愿用户发送开放的恳求,而是让他们从列表当选择。
  例如,您运转一个承受文件列表作为参数的传输法式,您应当经由过程一系列复选框列出一切文件。用户可以选择和作废选择文件,并经由过程单击 Submit 激活 rsync shell 剧本。用户不克不及本人输出文件或利用正则表达式。
  本文从两个方面引见的PHP shell剧本的用法,但愿能给你带来匡助。
根据功能来进行封装等。很多的不懂,在使用搜索引擎查找,或者请教老师和在老师详细的讲解、指导下,都能顺利解决。

乐观 发表于 2015-2-4 02:07:35

首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。

老尸 发表于 2015-2-8 08:31:15

写的比较杂,因为我也是个新手,不当至于大家多多指正。

小妖女 发表于 2015-2-8 20:26:52

学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。

透明 发表于 2015-2-9 09:31:14

其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。

若相依 发表于 2015-2-11 23:52:40

我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。

admin 发表于 2015-3-2 20:07:23

php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。

只想知道 发表于 2015-3-7 19:10:03

学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。

不帅 发表于 2015-3-11 12:09:11

首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。

莫相离 发表于 2015-3-13 06:35:45

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

因胸联盟 发表于 2015-3-20 15:18:05

本文当是我的笔记啦,遇到的问题随时填充

飘灵儿 发表于 2015-3-24 16:49:00

曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线\\\\\\\'_\\\\\\\' ;

冷月葬花魂 发表于 2015-3-27 10:11:27

要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。

柔情似水 发表于 2015-3-31 01:00:34

兴趣是最好的老师,百度是最好的词典。

分手快乐 发表于 2015-4-1 19:09:58

作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。

变相怪杰 发表于 2015-4-18 22:09:03

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

深爱那片海 发表于 2015-4-22 09:25:28

在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。

简单生活 发表于 2015-4-25 11:25:17

当然这种网站的会员费就几十块钱。

小女巫 发表于 2015-5-9 17:27:21

有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。

蒙在股里 发表于 2015-5-10 05:46:10

我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
页: [1]
查看完整版本: PHP网站制作之PHP教程之PHP中shell剧本的利用办法