zoukankan      html  css  js  c++  java
  • 【转】2012年7月9 – 知名网页游戏公司 PHP高级工程师 最新面试题

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

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

    印象深的有如下几题。

    setTimeout和setInterval区别。

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

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

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

    $str = preg_replace(“/<script>|</script>/”,’’,$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

     

  • 相关阅读:
    audiojs 音频插件使用教程
    JavaScrip 原生多文件上传及预览 兼容多浏览器
    node操作mongdb的常用函数示例
    D3基础---比例尺
    D3基础---简介和数据
    前端性能优化和规范
    CSS代码优化(转载)
    CSS基础知识---浮动,定位和盒模型
    CSS基础知识
    用户样式,作者样式和浏览器默认样式
  • 原文地址:https://www.cnblogs.com/52php/p/5666915.html
Copyright © 2011-2022 走看看