• 2011-03-31

    史上最强大的PHP Web面试题(会做就能进百度)

    Views: 72319 | 58 Comments

    注: 只要你会做了这道题目, 你的能力已经可以进入百度了! 如果别的部门不要你, 请你给我发邮件, 我一定尽我所能强烈推荐你! 如果你不想加入百度, 而别的公司又不要你, 只能说明那家公司瞎眼了.

    题目: 见图片, 该图是某网页的一个区域的截图, 用于显示商品或者其它信息的分类. 该分类的每一项可以折叠和收起(展开和收缩, 如果有子分类的话). 分类的级数不固定. 现有一个PHP变量:

    $cats = array(
        array(
            'id' => 1,
            'name' => '学术和教育',
            'children' => array(
                array(
                    'id' => 2,
                    'name' => '自然科学',
                    'children' => null,
                ),
                // ...
            ),
        ),
        // ...
    );
    

    请写一段PHP代码, 将该数组所包含的分类数据生成一段能实现如图片所示功能的HTML/JavaScript代码, 可不考虑CSS样式.

    ----------

    注解: 这道题目考察的范围非常广, 包括PHP, HTML, JavaScript, CSS, 递归, 只有真正掌握了如上几种全部技能, 才能实现完整的功能, 否则必须依赖分工. 应聘者所能实现的程度越大, 得分就越高.

    如果应聘者的应聘职位不包括HTML/JS/CSS, 那么题目可改为: 把上面的PHP数据用缩进换行文本的形式保存到文件, 并读取文件生成一个同样的PHP数组.(自定义格式的序列化和反序列化)

    看到这篇日志的读者, 如果已经做了出来, 并且个人想加入百度, 请在评论中回复URL并说明你的意愿, 我会主动联系你. 或者你可以把程序打包发给我.

    Continue reading »

    Posted by ideawu at 2011-03-31 16:57:24 Tags:
  • 2011-03-01

    PHP的continue 2

    Views: 24058 | 4 Comments

    PHP是一种类C语言语法的脚本语言, 但它有一些和C语言甚至是常见编程语言不一致的地方, 也就是PHP不符合常理的地方. 比如continue指令就是一个鲜活的例子.

    简单地把continue用在for循环中, 那么, PHP的continue和C语言的continue一样, 都是在直接跳到下一个循环, 忽略后面的代码的执行. 不过, 如果循环中包含了一个switch语句, 并且continue是放在switch里的, 那么意思就大不相同了!

    请看下面的例子:
    Continue reading »

    Posted by ideawu at 2011-03-01 13:52:12
  • 2011-02-24

    PHP查询MySQL大量数据的内存占用分析

    Views: 28834 | 8 Comments

    这篇文章主要是从原理, 手册和源码分析在PHP中查询MySQL返回大量结果时, 内存占用的问题, 同时对使用MySQL C API也有涉及.

    昨天, 有同事在PHP讨论群里提到, 他做的一个项目由于MySQL查询返回的结果太多(达10万条), 从而导致PHP内存不够用. 所以, 他问, 在执行下面的代码遍历返回的MySQL结果之前, 数据是否已经在内存中了? -

    while ($row = mysql_fetch_assoc($result)) {
        // ...
    }
    

    Continue reading »

    Posted by ideawu at 2011-02-24 10:34:12
  • 2010-06-22

    WordPress评论转义HTML标签

    Views: 27449 | No Comments

    把这段代码放到 theme 里的 functions.php 文件:

    function theme_pre_comment_post( $c) {
    	$c['comment_content'] = htmlspecialchars($c['comment_content']);
    	return $c;
    }
    add_filter( 'preprocess_comment', 'theme_pre_comment_post', '', 1);
    
    Posted by ideawu at 2010-06-22 13:54:47 Tags:
  • 2010-06-21

    HTTP POST using PHP cURL

    Views: 26616 | No Comments
    function http_post($url, $data){
    	if(is_array($data)){
    		$data = http_build_query($data);
    	}
    	$ch = curl_init($url) ; 
    	curl_setopt($ch, CURLOPT_POST, 1) ;
    	curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
    	curl_setopt($ch, CURLOPT_HEADER, 0);
    	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1) ;
    	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    	$result = curl_exec($ch) ; 
    	curl_close($ch) ;
    	return $result;
    }
    
    function http_get($url){
    	$ch = curl_init($url) ; 
    	curl_setopt($ch, CURLOPT_HEADER, 0);
    	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1) ;
    	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    	$result = curl_exec($ch) ; 
    	curl_close($ch) ;
    	return $result;
    }
    

    获取 HTTP 请求的首部:

    curl_setopt($ch, CURLINFO_HEADER_OUT, true);
    $result = curl_exec($ch) ;
    echo curl_getinfo($ch, CURLINFO_HEADER_OUT);
    

    cURL 打印请求头和响应头的选项 CURLOPT_VERBOSE

    HTTPS:

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

    Posted by ideawu at 2010-06-21 14:44:40 Tags:
  • 2010-05-19

    PHP解析HTML和loadHTML乱码

    Views: 34305 | 1 Comment

    为了对 RSS 输出的博客文章进行重新格式化, 比如去掉过于花哨的样式, 去除 JavaScript 脚本代码, 去除 onclick 等, 所以写了相关的 PHP 代码, 使用 DOM 模块.

    1. 乱码解决

    毫无疑问, 一上来就遇到了乱码问题, 虽然我已经按文档所述, 所有的字符使用 UTF-8 编码:

    $html = '<p>你好</p>';
    $dom = new DOMDocument();
    @$dom->loadHTML($html);
    echo $dom->documentElement->nodeValue;
    

    Continue reading »

    Posted by ideawu at 2010-05-19 13:44:57 Tags: ,
|<<<123456789>>>| 4/10 Pages, 55 Results.