代码分享之合法校验过滤编辑器提交的HTML内容
性,style 属性其实也有一定的风险,容易造成页面样式错乱,但是大部分编辑器生成的 HTML 还是包含 style 属性的。对 style 属性里面的 CSS 没有再做分析,以后有时间再补充。代码中使用了 Closure,因此需要 PHP 5.3 以上的版本才能跑。另外里面用到了函数 array_get,这个不是 PHP 内置函数,使用的时候需要注意修改。function HtmlFilter( $...
HTTP协议代理相关头Vary等的含义
机制除了 Vary 外,还可以通过 300 Multiple Choices 响应头来实现,不过这样就比较麻烦,需要一次往返网络请求,很费时。Vary 字段在一般情况下,特别是开发人员很少见到,也很少使用。如前面所说,大多数用在反向代理缓存服务器上,比如淘宝网访问量比较大,这样就会设置多个反向代理服务器,代理服务器才是真正的面向用户服务的机器。而目前浏览器的种类特别多,并且支持的压缩格式也不一样,缓存...
PHP扩展exif源代码编译安装教程
很方便的读取相机拍摄的图片的原始信息,此扩展的函数只有五个,但是却单独的做成了一个扩展。此扩展在 pecl 库 images 分类中是找不到的,需要直接下载 PHP 源代码才能找到。虽然网上有人提供了使用正则的方式获取相机拍摄的原图的相关信息,但是不够稳定和成熟,主要是各大厂商存储的图片信息格式不一致。关于手动编译安装 PHP 的扩展,其实我已经很多年没有这样做过了。但 exif 扩展比较重要,在某些...
PHP扩展PDO MySQL之PDOStatement::bindParam vs bindValue
现一个是引用,一个是普通传参。在测试修改操作的时候,发现数据库中最后一个字段和前一个字符串一样,int 类型没有收到影响,可能当时脑子太累的缘故,这个问题竟然搞了好久,第二天才弄清楚是因为在循环的时候使用了 bindParam 导致的。 MysqlPdoEnhance 驱动类已经上传到 LMLPHP 和 LBlog 中,LBlog 已经在初始化实例的时候自动选择对应的驱动类。这次改善使得 LBlog ...
在终端命令行使用SMTP协议发送邮件
最近使用 SMTP 协议连接 126 邮箱 smtp.126.com 发了一封邮件,开始几次都没有测试成功,一直提示 DT:SPM,在 126 服务器返回的链接中可以看到是被系统判定为垃圾邮件。如下响应: 554 DT:SPM 126 smtp6,j9KowAAHDGR3yR1Xi0s2CA--.28401S5 1461570156, please see http://mail.163.com/h...
谈谈HTML网页编辑器技术实现
前段时间终于把网站的编辑器做的还算有个样子了,至少符合我对编辑器的要求(使用简单,不能产生垃圾节点,能够和网站完美的融合,源码结构符合要求)。最近实在忙,忙的一直没有时间认真的去学点东西,拖到现在才写这篇文章,很多东西又忘记的差不多了。网站编辑器是非常重要的,重要到直接关系网站的成败。但目前没有哪一家公司重视过这样一个东西,随随便便找个开源的编辑器就用上了,以致于国内出不了牛逼的新闻媒体公司。大家去看...
谈谈PHP框架Laravel和CodeIgniter
起来更方便,它就是好框架,而不是一些不适用的 MVC OOP AOP。凭我对 PHP 的了解,市面上的框架 ThinkPHP Yii ZendFramework CakePHP Laravel 等我都使用过,所以对 PHP 程序特别熟悉。回到对 PHP 框架的理解,我认为如果要敏捷开发的话,市面上的框架其实都是不合适的,但是如果一个人没有开发经验,而又要应付工作,那就需要用到框架,对框架的选择尽量轻量...
PHP 5.5 新特性 ::class 获取类名字符串
看 Laravel 的源代码,之前在 Provider 里面是直接用字符串来配置需要的服务,新版本之后,代码发生了一些变化,使用的是类名加双冒号加关键词 class 来配置需要的服务。 Laravel 更新太快,要求的版本是 PHP5.5.9 以上,但是商业气息太浓,性能太低。不得不感叹,真是一用 Laravel,就像是女星嫁入豪门从此深似海。 使用 var_dump() 打印 类名::class,...
谈谈 PHP 协程的任务调度
eld 的作用其实只是中断,类似于 goto 语句,这样的代码导致阅读理解起来非常费力,而任务调度是我唯一能想到的 yield 的作用,方便管理垃圾代码。其实仔细一想,yield 能做的所有的事情,不使用 yield 照样可以相同效果的完成。学面向对象是为什么,支持面向对象是为什么,就是为了方便管理复杂的代码控制流程。像上面的任务调度,使用观察者模式一样可以同等效果的完成,也许稍微麻烦一点点,但性能应...
PHP适合创业Java才更适合打工
是最好的。我想,真正牛逼的人经验积累到一定的时候是会写出另外一种语言的。但个人的能力毕竟有限,于是就产生了大量的小的新型语言。只对语言的追求,设计出好的语言意义并不是很大,语言的进步在于开发产品,在于使用,在不断的使用中,这门工具才慢慢变好。作为一个程序员,我是比较佩服那些比较不太出名的语言的作者的,我觉得他们是有追求,不断开发钻研产品的牛人。除语言外,在做产品的过程中,软件的架构和设计也是非常重要的...