原文:http://technosophos.com/content/mongodb-5-things-every-php-developer-should-know-about-mongodb 感觉这篇文章说了一些 MongoDB 的要点,适合 MongoDB 扫盲使用。所以翻译出来,造福于民。虽然文章是针对 PHP 开发者写的,但实际上 python、ruby 或者其他 web 开发人员也可借鉴。 —————————-这里是译文分隔线—————————–
Tag Archives: PHP
脚本语言的配置文件
关于配置文件,在 PHP 的 Zend Framework 中我做过一些简单的关于性能的测试:http://www.mikespook.com/index.php/archives/36。将 ninnypro 的配置文件从 ini 修改为 xml ,并且声称能提高传说中的性能。 最近被调到另外一个在用 python 的组帮忙,阅读了他们的实现服务器端的 python 代码之,配置文件近二十余个,全是 xml 文件。为了使用着些配置文件,从 XMLFile 继承,实现了二十余个 Config 类。 这看起来似乎没什么问题。
[翻译]PHP的命名空间真这么糟糕么?
几年前(大约应该在02-03年之间,也就是php5刚出来那会)曾经跟朋友讨论过一次关于php的命名空间的问题。当时觉得,php要是能有命名空间,那是多完美的事情啊。 如今,php5.3已经包含了命名空间。但是似乎并没有当年的那种感慨了。大约是旧的系统要迁移,新的系统要重新设计,这个名字空间都有点鸡肋的感觉。看来还要习惯一下才好。 看到这篇文章,觉得说得是有点对的。也不长,就随手翻译出来。翻译后的感觉:作者 超级喜欢使用“However”。 能说明两个问题: php本身为什么是这样 php的名字空间为什么是这样 作者:Craig Buckler 原文:http://www.sitepoint.com/blogs/2009/08/13/are-php-namespaces-bad/
mb_ereg(i)_replace() 执行任意代码的漏洞
这个漏洞说大也大,说小也小。大是因为真得可以通过注入的方式让漏洞代码执行任意代码。小是因为产生漏洞的环境还是比较苛刻的。 来源于此:http://milw0rm.com/exploits/8641 当最后一个参数设置为“e”,也就是将替换的内容作为 PHP 代码执行的时候,漏洞就产生了。 例如: function hi80vul() {} $str = ‘\’, phpinfo(), \”; mb_ereg_replace(‘^(.*)$’, ‘hi80vul(\’\1\’)’, $str, ‘e’); 又例如: function hi80vul() {} $str = ‘\’, var_dump(get_loaded_extensions()), \”; mb_ereg_replace(‘^(.*)$’, ‘hi80vul(\’\1\’)’, $str, ‘e’); 如果有在代码中使用过 mb_ereg_replace 和 mb_eregi_replace,以及参数“e”,那就赶紧检查一下是否有这样的安全隐患吧。
广州PHP培训和我的一些想法
首先,在 google 做一个搜索,关键词“广州 PHP 培训”。大约有 1,230,000 项符合的结果。在百度上搜索相同的关键字,大约有 38,500 项符合的结果。 其中呢,“多迪”培训是占了大多数的,然后就是“慧的”培训。其实这两家都是老熟人了。
PHP框架的繁荣是正确的发展方向吗?
这个其实是源于 javaeye 上的这个讨论:http://www.javaeye.com/post/886707。最开始吸引我的是在 rails 板块上诸多专业玩 java 和 ruby 的人是如何评价 php 以及 php 框架的。在讨论中发现有一些值得学习和借鉴的地方。所以推荐大家完整阅读这个帖子。从技术性、知识面和娱乐性来讲,都是质量很高的。 我就简单说一下我对于 php 框架繁荣的看法:
PHP 5.2.6 safe_mode 中 error_log 的漏洞
今天早上在这里看到的,觉得很有必要记录一下:http://www.milw0rm.com/exploits/7171 一个简单的翻译如下:
Zend_Loader::isReadable 和 is_readable 的区别
以前分析过 Zend Framework 1.0 的 Zend_Loader;php 内建函数 is_readable 本质上就是调用 filestat.c 的 php_stat 函数,这个在前几天关于 file_exists 和 is_file 的那个 post 中有说过。 今天在群上跟番茄吹水,说起来这个东西。于是又混一篇小记随便吹吹。 以下所有内容,45%是吹水,45%是猜测,10%是从代码中看出来的。
为什么“is_file比file_exists快N倍”
首先,写本文的原因是看到番茄的这个 post:http://www.tblog.com.cn/archives/675 我没有重新测试,对于番茄的测试,我觉得绝对靠谱。 But why? 于是打开 php 的代码寻找到了 is_file 和 file_exists 的实现。其实原因简单到让人无法相信!
PHP —— 为什么不要在 foreach 中使用变量引用
最近在浏览同事之前写的代码的时候,发现大量的变量引用使用在 foreach 中: