开源框架LMLPHP-monkey发布强力回归WEB开发本质技术
很少有人知道 LMLPHP 框架还有一个版本,monkey 版本。其实早该出来的,只是一直没有时间来做这件事情。这回终于可以装一回逼了,LMLPHP-monkey 需要 PHP 5.3 以上版本,让那些喜欢 namespace 的人可以高大上一回。GITHUB 地址 https://github.com/leiminglin/LMLPHP-monkey
LMLPHP-monkey 让开发回归本质,不搞浮夸的东西。WEB 开发的本质更多的在于数据库的操作,我们提供了非常方便的数据库操作。Talk is cheap, show me the code,请看示例:
<?php $dbconfig = array( 'dbconfig' => array ( 'hostname' => 'localhost', 'hostport' => '3306', 'username' => 'root', 'password' => 'root', 'database' => 'lmlphp', 'charset' => 'utf8', 'dbprefix' => 'lblog_', 'persist' => false, ), 'test' => array ( 'hostname' => 'localhost', 'hostport' => '3306', 'username' => 'root', 'password' => 'root', 'database' => 'lmlphp', 'charset' => 'utf8', 'dbprefix' => 'lblog_', 'persist' => false, ), 'master' => array ( 'hostname' => 'localhost', 'hostport' => '3306', 'username' => 'root', 'password' => 'root', 'database' => 'lmlphp', 'charset' => 'utf8', 'dbprefix' => 'lblog_', 'persist' => false, ), 'online' => array ( 'hostname' => 'localhost', 'hostport' => '3306', 'username' => 'root', 'password' => 'root', 'database' => 'lmlphp', 'charset' => 'utf8', 'dbprefix' => 'lblog_', 'persist' => false, ), ); q('table_name')->query($sql, $params); q('table_name')->select('*', $where, $params); q('table_name')->find($id); q('table_name')->getAll(); q('table_name')->updateOrAdd($arr, $where); // ... getOne getList getCount add update del getLastId q('table_name', 'online')->find($id);
如何防止ISP网络运营商篡改网页技术
如何防止运营商修改网页,如何防止网页页面被植入广告,如何检测网页源码到达用户后被篡改?这个问题是个比较头疼的问题,也是让无数站长寻医问药很多年仍然不能很好的解决的一个问题。我这里先给出一个答案,如果一定要根治的话,那就是全站 HTTPS。
全站 HTTPS 是很难做到的,包括百度在内,百度仍有部分时候不是 HTTPS。据说使用了 HTTPS,某些运营商依然会更改,不过这样网页就会发生错误。
很多时候我们只是想检测或者知道网页到达用户以后是不是被篡改,从而提示用户转到 HTTPS 页面。针对这个问题,是非常难解决的,据说百度之前给站长支招,放入一段 Js 代码,遍历 DOM 节点,如果发现 DOM 中有 SCRIPT 标签中的 SRC 不是本站已知的域名则移除。其实这样做不是完全有用的,因为很多动态加载的 JS 代码会自动移除 DOM 节点。并不会留下任何踪迹。很多人肯定会想到通过源文件或者 HTTP 协议头来校验,其实 JavaScript 是没有办法获取网页源文件的,所以通过源来校验的路走不通。通过 HTTP 协议头呢,也依然是没有用,JavaScript 不能获取页面首次请求的头信息,除非再发出 Ajax 请求。
安装安全补丁KB958644解决WinXP下不能访问exFAT文件格式技术
新买的移动硬盘或者闪盘默认格式大都是 exFAT 格式。这个格式是微软在 09 年新推出的一种文件格式,为了解决 FAT32 格式下文件大小的限制和 NTFS 下频繁读取影响存储寿命的问题。这个格式的文件系统默认在 WinXP 下是不能读取的,需要安装微软官方给出的安全补丁,该补丁不是必须安装的。
网上找到的一些 exe 文件不太靠谱,所以这种重要的更新一般还是官方给出的比较好,本人在微软官网找到了一个下载链接:https://www.microsoft.com/en-us/download/details.aspx?id=3205,Security Update for Windows XP (KB958644)。
谈谈关于Jquery中html()方法设计不合理的地方技术
关于 JavaScript 的动态技术,最熟悉的莫过于 DOM 的 innerHTML 操作。这个是让网页动态的最重要最基础的功能。当我们做后台的时候,所以完全不用做 SEO,这样后台的代码尽量动态化和异步加载,异步加载一般不一定全部都是 JSON 格式,很多时候直接加载 HTML 网页也是非常常见的。这种动态加载过来的网页要嵌入到原网页中,如果不用 Jquery 提供的 html() 方法,只能使用原生的 innerHTML 操作了。
有点经验的人一定会遇到这样的问题,Ajax 技术加载过来的网页中包含 JavaScript 代码或者 SCRIPT 标签。这样的需求是很常见的,比如某个特效或者某个 JS 文件只服务与某个网页,就没有必要一开始就全部加载,而应该是按照需要加载,当用户触发了之后再加载那个 JS 文件。如果不使用 Jquery,你一定会遇到一个问题,就是 JavaScript 代码不会执行,Script 标签不会被解析加载。如果您是个前端工程师,并且你不知道这个问题,我觉得你一定很可悲,但是我敢确定,至少有 50% 的前端工程师不知道这个问题(在如今前端技术被各种框架占据的时代,大部分人都是不知道所以然的)。当然比较厉害并且不愿意使用 Jquery 的牛人也一定可以很容易的解决这个问题,那就是匹配内容中的 JavaScript 代码然后使用 eval 或者 evalScript 方法来执行它,这个也是和 Jquery 的 html() 方法的解决方案是一样的。
在终端命令行使用SMTP协议发送邮件技术
最近使用 SMTP 协议连接 126 邮箱 smtp.126.com 发了一封邮件,开始几次都没有测试成功,一直提示 DT:SPM,在 126 服务器返回的链接中可以看到是被系统判定为垃圾邮件。如下响应:
554 DT:SPM 126 smtp6,j9KowAAHDGR3yR1Xi0s2CA--.28401S5 1461570156, please see http://mail.163.com/help/help_spam_16.htm?ip=220.248.12.226&hostid=smtp6&time=1461570156
从百度百科和 WikiPedia 维基百科上对 SMTP 协议的介绍就会发现,百度百科有很多细节上的错误。最终查看维基的示例成功发了邮件。完整的示例如下,对一些敏感信息做了修改。