我们公司的PHP面试题很简单,只要解决这三个问题就能面试成功。聪明的hr总是能从简单的问题检测一个人的技术是否成熟,是否有很好的学习能力,是否有可塑的潜质。下面就看看这三道面试题,另外公司面试C++程序员也是用相同的题目,来检验面试者的各方面的能力。
第一道题是有关PHP数组的,统计数组中所有值出现的次数。对于这道题目你可以自己写程序处理,也可以用PHP数组函数array_count_values来处理。
//题目如下,统计数组中所有值出现的次数。 array( 中国,美国,法国,德国, 中国,加拿大,日本,德国, 中国,美国,英国,德国, 中国,美国,中国,德国, 中国,巴西,法国,德国, 中国,美国,法国,中国 )
对于数组函数array_count_values来说,大多数PHPer可能不知道(其实原先我也不知道,用到它以后,就记忆犹新了),但是对于这道题目而言,那是再恰当不过啦。PHP有很多内置的数组、字符串处理函数,这些函数能很好的解决我们碰到的问题,所以有更高效的方法,我们应该好不吝啬的选择之。条条大路通罗马不假,但我们要选择最近的那条道,这样才能有更多的时间处理下面的事情。
题目二是对题目一结果的进一步处理,对统计的结果,按出现的次数排序。所以只有在题目一成功实现的基础上才能处理题目二。
//对键值,按正序或倒序排列 array( '中国' => 8, '加拿大' => 1, '德国' => 5, '日本' => 1, '法国' => 3, '巴西' => 1, '美国' => 4, '英国' => 1, )
对于题目二,可以用冒泡法、快速排序、堆排序法进行处理,但对于PHP而言,有更快速的方法来处理这个问题,它就是asort($arr)函数,按键值排序,且维持原有的键值关系。一行代码就能解决问题,这样会给自己接下来的题目节省更多的时间。
最后的题目一般是压轴的题,这里也不例外。需求是:用curl抓取桌酷壁纸(http://zhuoku.com)站里的图片,把壁纸图片的链接,标题,标签,下载链接等抓下来,存入本地数据库,生成简单的网页,在本地能查看相应的图片信息。
听上去,好复杂,不妨我们缕一缕。
第一步、用curl抓取页面,前提要会使用curl,curl可是个好东西,可以干很多事情。当时我还不知道这个函数库,只能查文档学习了。
第二步、分析抓取的数据,解析出相应的内容,这里可能要用到正则表达式、正则替换、html标签解析等。
第三步、把解析出来的信息存入到本地数据库,然后在生成效果页面。在这一步,要设计简单的数据库表结构,注意数据库乱码的问题。
题目虽小,设计到的知识可不少,前前后后需要折腾一会。
写程序不是意味着一直的敲代码,一定要加入我们的思考,走最捷径的路,找最好的处理方案,这样敲起代码来才能省时省力,程序是永远写不完的,而我们要的是很快的成长起来。
本文由PHP乐知博客提供 http://tech.42xiu.com