|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"。注意不是“Hypertext Preprocessor”的缩写,这种将名称放到定义中的写法被称作递归缩写。 </p> 埋怨你的东西,其实不会让你的工作做得更好。
我前一篇的「PHP 开辟迷思 (叁) – PHP 很糟?」,有网友写了一篇「 PHP 很烂」往返应。
我想说的是:对他来讲, PHP 切实其实很糟,所以真的不合适他;由于他援用了他人逗留在三四年前的 PHP 的不雅念来证实他对 PHP 的意见。还有,他看到的都是烂 PHP 法式。
不成否定, PHP 切实其实在后天上有所缺乏,只由于它出生的太早,良多累赘没法等闲脱节。即使 PHP 6 将会脱节这些束厄局促,但工夫点仿佛太晚?
所以呢?岂非研讨 PHP 的人都是傻瓜吗?
固然不是。
我不想为 PHP 平反甚么,我也不以为我能改动几何人对 PHP 的意见。这e我只想把这些人以为 PHP 烂的中央做个申明,剩下的就交给人人自行评议。
版本成绩
从 PHP 出生以来有十五年了,真正被人人正视而入手下手应用的第 4 版则有十年了。
但是跟着 PHP 5 的出生,和 2008 年 PHP 4 不再被官方保护,大部分的主机商也已安排了 PHP 5 作为次要履行情况;固然现阶段 PHP 5 仍是会让 PHP 4 的法式可以履行,然而开辟者的不雅念假如没有一同跟着更新,那才是灾害的入手下手。
言语的设计原本就没举措一入手下手思索周详, Java 如斯, Python 也是如斯,它们在严重改版时,部分语法及相干的中心组件上原本就会有所改动。而开辟者假如没有合时去懂得在新版本上的利用差别,那末跟埋怨一把生锈的斧头很难砍倒一棵大树有甚么不同?
Unicode
Unicode 在比来这几年才入手下手被台湾的开辟者所正视,在那之前 BIG5 也许是他们的噩梦吧。
先不论 PHP ,咱们来看一下其余言语怎样处置 Unicode 。
Ruby: 就我深刻的懂得, Ruby 自己也不完全增援处置 Unicode ,但仍是可以处置。
Python: 在 2.x 版也是透过 unicode 种别来处置,在 3.0 中心有直接增援。
那末 PHP 呢?
切实其实 PHP 自己没有很便利的办法来处置 Unicode ,然而不暗示它不克不及用其他办法来处置:
mbstring: 多位元组的字串处置
iconv: 转换编码
PHP 6 今后则是直接把 unicode 放到中心函式e。
固然 PHP 后天的限制,会让它在处置 Unicode 字串上没法像 Ruby 和 Python 那末直觉;但不暗示咱们不克不及透过其他办法将它封装起来,便利后续的开辟。
在材料库上的 Unicode 成绩也是如斯, PHP 自己不处置这些,它只是透过 client 来获得材料库回传的材料,这在每一个言语对材料库的实作都是一样的。
Magic Quotes
一入手下手 PHP 有 magic_quotes 只是为了便利处置要塞入材料库的字串,由于事先 PHP 开辟者关于法式与材料库之沟通十分不熟习。
但是,这只是材料分层处置的不雅念。
现实上咱们基本不应对吸收上去的材料做假定,假如输出的材料是「许功盖 (BIG5) 」,就让它坚持「许功盖 (BIG5) 」;比及要存入材料库时,再让真实的材料操作函数 (或物件) 去向理它 (像是 PDO::quote ) ,而不是再用 addslashes() 或 stripslashes() 这类别扭的体例来存取材料库。
而从材料库获得材料时也是一样,由于咱们用准确的办法塞入,所以它也会回传咱们准确的材料,这在一切言语都是一样的!
所今后来的 PHP 5.3 版本就将 magic_quotes 放弃, PHP 6 则直接不增援。
而在这之前的版本所开辟出来的法式,也都是该以 magic_quotes 坚持封闭的形态来开辟;碰到不肯定 magic_quotes 是不是开启时,可以参考官方手册的建议来作废它对法式的影响。
SQL Injection
某网友说:「填‘; shutdown — 就可以打挂一票网站…,九成能够都是 PHP 写的」,又说「我晓得 SQL (Injection) 是跨言语的成绩,然而 PHP 就是恰恰出格轻易写出有洞的法式 像如许 “SELECT * FROM User WHERE id = $user_id” 然后就毁了。」
我团体倒以为,有九成以上会有 SQL Injection 成绩的,多是传统的 ASP 网站。 (这边 ASP 只是举例,不暗示真的九成以上都是如许;现实上没有援用一个准确的统计数字,这都只是嘴炮罢了,请塬谅我用这么粗鄙的字眼)
<p>只要实现最基本的功能就可以了 就是可以添加留言 然后可以显示留言,然后加入管理功能 |
|