热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【转】2012年7月9–知名网页游戏公司PHP高级工程师最新面试题

开头先唠叨两句,今天下午,上海的天热的让人窒息啊。Google下地图,好远!要做公交,想想就是人挤人。咬了下牙,打的,尼玛百来块啊,有木有!麻麻的,更让我萌生买车的决心了。到了公司

开头先唠叨两句,今天下午,上海的天热的让人窒息啊。Google下地图,好远!要做公交,想想就是人挤人。咬了下牙,打的,尼玛百来块啊,有木有!麻麻的,更让我萌生买车的决心了。

到了公司,环境不错。前台拿来几张试题,让笔试。浏览了下,又是全能卷,这也见惯了,新奇的是另一个小细节,每张卷子的左下角都标示“绝密”二字!尼玛你当这是高考啊。

印象深的有如下几题。

setTimeout和setInterval区别。

setTimeout 延迟执行函数,只执行一次。

setInterval 定时执行函数,间隔时间反复执行。

有一字符串,$str = “”,过滤只剩alert();

$str = preg_replace(“//”,’’,$str);

$str = strip_tags($str);

给一链接http://www.google.com.hk/search?q=youxi。取出其中所有的链接地址,保存到url.txt文件中。

$str = file_get_contents(“http://www.google.com.hk/search?q=youxi”);

preg_match_all(“/href=”(.*?)”/i”, $str,$matchs);

foreach($matchs[1] as $u){

if(empty($u))continue;

$url .= empty($url)? $u : “ $u”;

}

file_put_contents(“url.txt”,$url);

Linux的计划任务什么,有什么注意点。

cron编辑计划任务。

注意点:cron任务,最小单位为分钟。(当时就写了这么多了,没办法linux上我还是小菜。)

下面为网上找的内容:

crontab -e编辑定时任务,crontab -l查看。最后的cron任务文件保存在/var/spool/cron/crontab目录下

cron会切换到/var/spool/cron/crontab目录下cron文件的owner这个用户,然后执行定义的定时任务。

cron切换用户的时候,任何环境变量,包括.bashrc都不会被执行到。所以诸如$HOME这样的变量也是没有定义的。所以,一般在定时任务的脚本中,我们会这样处理:

#!/bin/bash

HOME=/home/markz

source ${HOME}/.bashrc

export PATH=/usr/local/bin:$PATH

然后才是具体的要执行的任务。

有一点注意,~/.bashrc往往都含有大量的定义和脚本执行,这有可能会影响到 source的成功执行。我们之所以在需要cron的脚本中加入这句source,大多数情况下是为了定义一些环境变量。所以为了让source能保证成 功,一般我们都会把需要的环境变量单独存放到一个文件中,然后去source那个文件即可。直接source ~/.bashrc不是一个好的做法。

/var/log/syslog保存了cron的log,查看该log可以方便的知道定时任务执行的一些情况。

编写一个shell,把当前目录下所有包含2008-10文件名的.log后缀的文件内容。全部写入到一个大文件all.log里。

附加题

如果你有一个女朋友,经常让你改变自己的生活习惯,比如不许你喝酒。每天洗澡,每天9点就睡觉等习惯,否则就分手。你会?

答:这个得教育。(当时没这么写啦!哈)

一个和尚从山下跳水到山顶的速度是5公里没小时,请问下山的速度是多少可以是上山下山的总评价速度达到10公里每小时?

答:(5x+vy)/(x+y) >= 10

y >= 5x/(v-10)

5/(v-10) <= 1 //画个图一目了然。

v-10 >= 5 //5公里上山,10公里平均,下山的v必定大于10,也就是v-10大于0,直接去分母。

v>=15

如果你需要保存一下的内容。某个人所加入的所有团队,某个团队内所包含的人。在c++中,你选择哪种容器?

答:…(哥都几年没碰c++了)

你现在要做的是一套图片管理系统。关于用户图片上传。你是如何尽量避免1,图片被盗用?2图片重复上传?你的图片上传保存目录如何设置?

答:编写.htaccess文件,防止盗链。

上传按钮按下后立即失效,不允许重复提交。处理页不允许刷新F5。

按月份分目录存放。

口试:(哇,有含金量的。面试我的是大牛。年龄!气质!)

设计一个快速登陆接口。有1千万乃至1亿的用户量。

答:哇喔,数据量蛮大的哦。先拆分表吧。

恩,这个是第一步,你怎么拆了?

用户id吧,最简单的了,不管是硬性数量一张表,还是某种算法一张表,查找用户资料很方便。

恩,这是一种分表方式。不过我们的需求是登陆接口。那时我们还没有用户的id,我们怎么查找了?

哦,对了。呵呵,这个,你让我想想!用户名首字符?

有中文用户名的。

哦,想想。额,把用户名MD5为32位字符串,不对哦,MD5没规则啊!额,怎么定位了,想想啊!

MD5没规则吗?

额,这个我还真不知道,没规则吧?真没关心过这个问题。有规则么?

MD5是32位字符串吧!只有数字和字符吧?

恩,这个是的!

那范围你知道吗?比如MD5是0-9和a-多少z吗?

f吧?不是十六进制么?

那有什么规则么?

这个还真没注意过哦!

哦,那接下来登陆接口怎么做了?

MD5后,是32位字符串,恩,想想,把数字和字母相加得一个数字。

字母和数字怎么加了?

数字和Ascii相加啊,最小全是0,最大全是f相加。然后得具体的值,比如1-10放table1里,10-20放table2里…

恩,为什么要相加了,你已经有数字和字母的ascii了,也就是全数字了。

我不知道MD5有什么规则啊,只能这样把他们相加得一个值,然后去做相应的算法我有把握!

你了解什么登陆通行证?就好像我在a.com网站登陆了,b.com中也能登陆。怎么做?

你说的相当于discuz中ucenter用户中心对吧?用户所有登陆信息都会到这个用户中心进行验证,验证机制就太多了,web service ,rest,socket随便什么。具体的应用中也有一个备份,毕竟两个应用,耦合的太紧问题就来了。

 
 

摘自:http://www.lnmper.net/?p=23

 

【转】2012年7月9 – 知名网页游戏公司 PHP高级工程师 最新面试题


推荐阅读
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 4554:[Tjoi2016&Heoi2016]游戏 ... [详细]
  • 校园表白墙微信小程序,校园小情书、告白墙、论坛,大学表白墙搭建教程
    小程序的名字必须和你微信注册的名称一模一样在后台注册好小程序。mp.wx-union.cn后台域名https。mp.wx-union.cn ... [详细]
  • 最近学习了关于使用最为流行的jquery发送请求,在实践中以最为简单的聊天室作为测验的辅助工具,对相关网页开发有一个初步的认识,希望大家能够一起学习进步。首先介绍一下 ... [详细]
  • shareSDK集成
    根据签名获取MD5签名的方法一、通过androidstudio生成签名保存在本地二、 ... [详细]
  • iMesh网站数据在暗网上被出售
    iMesh公司曾是美国三大音乐视频分享服务提供商之一,但是据国外媒体报道,这家公司近期正式对外宣布破产。iMesh是一个文件分享软件,它能够让 ... [详细]
  • ProjectReport- ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • MVC设计模式的介绍和演化过程
    本文介绍了MVC设计模式的基本概念和原理,以及在实际项目中的演化过程。通过分离视图、模型和控制器,实现了代码的解耦和重用,提高了项目的可维护性和可扩展性。详细讲解了分离视图、分离模型和分离控制器的具体步骤和规则,以及它们在项目中的应用。同时,还介绍了基础模型的封装和控制器的命名规则。该文章适合对MVC设计模式感兴趣的读者阅读和学习。 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • Linux学习笔记:psef、ps aux、kill9
    一、查看进程命令1.ps命令Linux中的ps命令是ProcessStatus的缩写。ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照,就 ... [详细]
  • camel_使用Camel在来自不同来源的Solr中索引数据
    camelApacheSolr是建立在Lucene之上的“流行的,快速的开源企业搜索平台”。为了进行搜索(并查找结果),通常需要从不同的源(例如内容管理 ... [详细]
author-avatar
jrs2078148
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有