Tag: PHP

  • [翻译]MongoDB:PHP开发者应该知道的关于 MongoDB 的 5 件事儿

    原文:http://technosophos.com/content/mongodb-5-things-every-php-developer-should-know-about-mongodb

    感觉这篇文章说了一些 MongoDB 的要点,适合 MongoDB 扫盲使用。所以翻译出来,造福于民。虽然文章是针对 PHP 开发者写的,但实际上 python、ruby 或者其他 web 开发人员也可借鉴。
    —————————-这里是译文分隔线—————————–
    (more…)

  • 脚本语言的配置文件

    关于配置文件,在 PHP 的 Zend Framework 中我做过一些简单的关于性能的测试:http://www.mikespook.com/index.php/archives/36。将 ninnypro 的配置文件从 ini 修改为 xml ,并且声称能提高传说中的性能。

    最近被调到另外一个在用 python 的组帮忙,阅读了他们的实现服务器端的 python 代码之,配置文件近二十余个,全是 xml 文件。为了使用着些配置文件,从 XMLFile 继承,实现了二十余个 Config 类。

    这看起来似乎没什么问题。 (more…)

  • [翻译]PHP的命名空间真这么糟糕么?

    几年前(大约应该在02-03年之间,也就是php5刚出来那会)曾经跟朋友讨论过一次关于php的命名空间的问题。当时觉得,php要是能有命名空间,那是多完美的事情啊。
    如今,php5.3已经包含了命名空间。但是似乎并没有当年的那种感慨了。大约是旧的系统要迁移,新的系统要重新设计,这个名字空间都有点鸡肋的感觉。看来还要习惯一下才好。
    看到这篇文章,觉得说得是有点对的。也不长,就随手翻译出来。翻译后的感觉:作者 超级喜欢使用“However”。
    能说明两个问题:

    1. php本身为什么是这样
    2. php的名字空间为什么是这样

    作者:Craig Buckler
    原文:http://www.sitepoint.com/blogs/2009/08/13/are-php-namespaces-bad/ (more…)

  • 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 项符合的结果。

    其中呢,“多迪”培训是占了大多数的,然后就是“慧的”培训。其实这两家都是老熟人了。 (more…)

  • PHP框架的繁荣是正确的发展方向吗?

    这个其实是源于 javaeye 上的这个讨论:http://www.javaeye.com/post/886707。最开始吸引我的是在 rails 板块上诸多专业玩 java 和 ruby 的人是如何评价 php 以及 php 框架的。在讨论中发现有一些值得学习和借鉴的地方。所以推荐大家完整阅读这个帖子。从技术性、知识面和娱乐性来讲,都是质量很高的。

    我就简单说一下我对于 php 框架繁荣的看法: (more…)

  • PHP 5.2.6 safe_mode 中 error_log 的漏洞

    今天早上在这里看到的,觉得很有必要记录一下:http://www.milw0rm.com/exploits/7171

    一个简单的翻译如下:

    (more…)

  • 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%是从代码中看出来的。 (more…)

  • 为什么“is_file比file_exists快N倍”

    首先,写本文的原因是看到番茄的这个 post:http://www.tblog.com.cn/archives/675

    我没有重新测试,对于番茄的测试,我觉得绝对靠谱。

    But why?

    于是打开 php 的代码寻找到了 is_file 和 file_exists 的实现。其实原因简单到让人无法相信! (more…)

  • PHP —— 为什么不要在 foreach 中使用变量引用

    最近在浏览同事之前写的代码的时候,发现大量的变量引用使用在 foreach 中:

    $a = array( ‘a‘, ‘b‘, ‘c‘, ‘d‘);
    foreach($a as &$v) {
        $v = $v . ‘_bar‘;
    }
    var_dump($a);
    

    (more…)