php面试题

腾讯外包组面试题

请写出至少5个PHP中的超级变量,并说明超级变量的功能?

$_SESSION   操作会话
$_GET       URI传参
$_POST      传参
$_SERVER    服务器参数
$_GLOBALS   超全局变量

用PHP写出显示客户端IP与服务器IP的代码?

echo $_SERVER["RENOTE_IP"]; //获取客户端ip
echo $_SERVER["HTTP_CLIENT_IP"] //获取服务器Ip

用PHP打印出前一天的日期,格式为YYYY-MM-DD hh:mm:ss

echo date("Y-m-d h:i:s",strtotime("-1 day"));

语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们?

include 引入文件不存在时报告错误停止执行。

require 引入文件不存在时报告错误继续执行。

可用 _once 代替

但5.4 以上支持命名空间 建议采用composer 加载

请写一个函数验证电子邮件的格式是否正确?

此正则并不严谨 建议使用更严谨的正则

function checkemail($mail)
{
    if(preg_match("/^([a-zA-Z0-9])*@([a-zA-Z0-9])*\.(a-zA-Z)*/",$mail))
    {
        return ture;
    } else {
        return false;
    }
}

使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来?

表名User
Name Tel Content Date

张三 13333663366 大专毕业 2006-10-11

张三 13612312331 本科毕业 2006-10-15

张四 021-55665566 中专毕业 2006-10-15 

请根据上面的题目完成代码:

$user = mysql_query($conn,"select * from User where Name = '张三'");

foreach($user as $k => $v)
{
    print $v['Name'];
}

原生真是坑,我宁愿自己封装个ORM 试问此题目的何在??? 这题做完我都不知道对错。

试问高级语言中谁会用 最基本的字符串格式化? print("%d",&a); 这样发明高级语言出来作甚???

检测一个变量是否有设置的函数是?是否为空的函数是?

isset();
empty();

请用php输出下面这段json,不能使用字符串拼接来实现。

var testjson = {
    fruit: [ 
        { apple: “苹果” },
        { banana: “香蕉” }
    ]
};

这题 看的我一头雾水。。要怎么输出呢?

输出成啥格式的??

如果直接输出json

echo $testjson;

输出数组

$arr = json_decode($testjson,true);
print_r($arr,true);

输出对象

$obj = json_decode($testjson);
var_dump($obj);

// 或者我心爱的DD();

请简单描述一下php中Session的存储方式以及如何操作Session

终于来到正题,这题还值得答一下

php 中的Session是可以存放到文件目录中去。

在php.ini 中存在session的配置项

当然如果不想存在文件中 也可以 通过配置项指定到Redis中去。

Session会话是非永久的。浏览器关闭后,Session即时销毁

session与cookie的区别和联系

这个session Cookie 之间的与字是我自己加进去的原题目(session科cookie的区别和联系) 很搞笑吧

Session 与 cookie 是两种存储方案,可以用来位置客户会话。

区别是 session存在服务器,随浏览器关闭而销毁。

Cookie 存在客户浏览器上,客户拥有绝对的权限来玩,随便玩。

php中如何设置报错的级别,分别说明在配置文件和代码中设置的方法?

   php.ini 中设置报错级别选项 error_reporting

   php中用error_reporting()函数动态设置,此函数之后有效。

有一个游戏道具赠送类的营销活动,每天有1000W用户参与量,需要提供给玩家查询1天前的领取记录,数据库设计时应该注意哪些点?

提示:1 按每天3小时(10800秒)的峰值算,1秒钟的峰值会有近1000的访问。
2 假设赠送环节也是需要营销活动开发侧控制,赠送是调用游戏的接口发货,
游戏接口提供给单活动的发货速度是100/s

只考虑数据库设计

索引 Btree

避免数据库类型 空间浪费

其他需要考虑

读写分离是必须的。

查询需要用的字段。

缓存已查询过人的个人信息。减少二次查询。

HTML 相关题目

请写出下面的form在提交后的URL


<html>
<head><title>登录</title></head>
<body>
<form action=?"login" method=?"get">
<p>用户名<input type=text name="name" size="10" maxlength="20"></p>
<p>口令<input type=passwd name="pass"></p>
<p><input type="submit" name=submit></p>
</body>
</html>

上面页面的url是http://www.qq.com/bbs/login.htm中,如果在用户名处输入“test”,口令处输入:“123456”,请写出点击submit按钮后,在浏览器的显示地址处所显示的url:?
如果将第4行改为<form action=?"login" method=?"post">,那么在浏览器的显示地址处所显示的url应为:?

这题以前测试过.

浏览器会将?之后的忽略掉。以? 作为参数。

但是GET 本身起始就是以?开始 & 作为参数的。 所以这个题有些弯弯绕

http://www.qq.com/bbs/login.htm?name=test&pass=123456&submit="提交"

既然第一个问题中?未显示。那么method中 ? 也不会被识别 会被以默认GET处理。所以两个参数是没有变化的。

javascript
14-1. setInterval与setTimeout的区别

setInterval(alert(1),3000); // 每三秒弹窗一次
setTimeout(alert(1),3000); // 三秒后弹窗一次

使用JS设计一个秒杀类活动显示倒计时效果的功能(例:在页面中显示剩余 xx分xx秒)

function countdown(that,second) {

    if (second == 0) {
        that.removeClass("disable");
        return true;
    }

    setTimeout(function(){
        that.html("剩余"+ (second / 60) +'分'+ (second % 60) +'秒');
        //除60算出多少分钟后

        //求余数 算出多少秒
        return countdown(that,second -1);
    },1000)
}

写一个js通用函数,将"ksdfjl234sdfdpoi432m432lklxs"这种字符串,按Ascii码值从小到大进行排序

没说不可以使用系统函数。钻个漏洞

function sort(a)
{
    var arr = new Array();
    for(i in a){
        arr.push(a.charAt(i));
    }
    var newarr = arr.sort();
    var newstr = "";

    for(i in newarr){
        newstr += newarr[i];
    }
    return newstr;
}

var str = sort("ksdfjl234sdfdpoi432m432lklxs");
console.log(str);

Ajax 和JSONP 的区别是什么?

Ajax 是数据一种web请求

jsonp 是一种数据交换格式

常见的web安全问题有那些?

sql注入,XSS跨站,远程上传,远程访问,服务器安全,redis是否有远程登陆权限等。

总结

终于做完了,这个还真是长啊。

一个要是写了这么多问题,真是证明这个人需要找工作。

有错误欢迎指出, 一起讨论。

添加新评论