第一部分 1. nginx使用哪种网络协议? 2. <? echo 'hello tusheng' ; ?> 没有输出结果, 可能是什么原因, 简述的解决此问题的过程(提示: 语法没有问题) 3. 简述下面程序的输出结果, 简要说明为什么, 如何解决这类问题? <?php $tmp = 0 == "a"? 1: 2; echo $tmp; ?> 4. 已知一个字符串如下: $str = "1109063 milo 1"; 用一行代码将该字符串里面的1109063赋值给$uid, milo赋值给$user, 1赋值给$type 5. 分别列出如下类型的有符号和无符号范围 TINYINT SMALLINT MEDIUMINT INT 6. 将下面的数组用一行拼装成一个字符串i am milo! day day up! <?php $arr = array( 'I', 'AM', 'MILO!', 'DAY', 'DAY', 'UP!' ); ?> 7. 调用如下函数获取函数并获取count的值 <?php function get_list($cnd = array(), &$count = false) { // 伪代码 处理$cnd 并赋值datas $datas = 'i am call back'; $count && $count = rand(1, 10000); return $datas; } ?> 8. 几种方式去取代session机制, 简单描述各自的优劣 9. 下列HTTP状态码出现的可能原因, 如何处理 200, 301, 404, 502, 503 10. 有如下数据库, 用原生态mysql扩展去连接并查询user表的前十行 host: 192.168.0.254 port: 3306 user: one pass: piece database: db_user table: user 11. 用autoload($class) 实现Lib目录下的类的自动加载并可以兼容子目录 12. 用set_error_handle 去捕获错误并输出, 级别自己定 set_error_handle(callback,level) function callback(int $errno , string $errstr [, string $errfile [, int $errline [, array $errcontext ]]] ){ } 13. 简述两种屏蔽php程序的notice警告的方法 14. instanceof的作用, 经常在什么设计模式中使用 15. 1023用二进制表示, 并简述计算过程 16. 下面php程序输出的内容是什么? 为什么? <?php $str = "aa\tbb\tcc"; @list($a, $b, $c) = explode('\t', $str); echo $a,$b,$c; ?> 17. include和require 分别返回什么错误级别 18. 现有一个函数, 有不确定多少个的参数(可能有5个也可能有50个), 如何去定义这个函数 方法一: 不借助php内置函数 方法二: 提示func_num_args() func_get_arg() unc_get_args() 19. 在一个函数(该函数没有return语句)里面去处理全局变量, 并且改变他的值, 用两种方法去实现(global和引用&) 20. 应用中我们经常会遇到在user表随机调取10条数据来展示的情况, 简述你如何实现该功能, 不能使用sql函数以及order by等语句 表 user 字段uid, username 21. 假设下面的sql语句里面的uid都能获取到具体值, 经过下面语句查询后uid的顺序是什么, 如何去按照uid in 输入的顺序去排序 select uid from user where uid in(10, 1, 3, 8, 11, 4, 7); 22. 用PHP将一个字符串中的字母替换成** 23. 下面2.php中打印结果是什么? 为什么? 执行顺序1.php->2.php 1.php <?php setcookie('test', 'cookie_test', 3600); ?> 2.php <?php $cookie = isset($_COOKIE['test'])? $_COOKIE['test']: 'cookie'; echo $cookie; ?> 24. 简述php常用的json编码函数, 如何将json解码的时候返回数组 25. mysql 在sql语句中有' / 等词的时候, 要对sql语句的每个具体值做些什么处理 26. 如何在php中设置header头信息 27. 有如下几个脚本, 请问2.php的输出结果 1.php <?php return "i am here"; ?> 2.php <?php $r = include_once "1.php"; echo $r.'<br/>'; $r2 = include_once "1.php"; echo $r2; ?> 28. 简述call_user_func的功能 29. 访假设nginx已经配置server_name www.120.net xxx.120.net 访问问http://www.120.net/index.php和http://xxx.120.net/index.php之后 $_SERVER["SERVER_NAME"] 和 $_SERVER["REQUEST_URI"]分别是什么 30. linux下某文件的属性为 drwxr-xr-x 用数字表示其权限是 31. 宽带的1Mbps理论上的下载速度是多少KBps, 计算的方法 第二部分 1. 简单实现一个单例+工厂的设计模式 2. 例举几个常用的魔术方法, 并说明作用? 如何在打印一个对象的时候展示我们自定义的内容? 3. 类静态方法和实例化类方法比较及优缺点 4. 有一个论坛 threads表记录主题以及标题等信息 posts表记录主题内容以及回复内容等信息 threads 表主键为 tid posts 表主键为 pid, 所属主题标记为tid 通过tid将threads和posts 一对多关联起来 现在数据量posts表达到了1亿, threads表2000万, 大约一个主题有5篇回复 请你设计一下分表, 将posts表和threads表进行mysql分表 5. 现在有一个mysql 主库/丛库, 请问php mysql查询的时候怎么在php程序中实现主从分离? 主从分离有什么好处 6. 简述UCenter的单点登录机制 7. linux相关 有一个包 http://www.120.net/test-1.0.0.tar.gz a. 将它下载到/usr/local/src b. 将其源码编译安装到/usr/local/test 目录 c. 他依赖mysql包, 位于/usr/local/mysql 目录 写出下载编译安装过程 8. 使用php 的memcache扩展编写一个获取数据的函数(缓存即将过期超时加锁) a. 数据超时之后去mysql获取, 获取完后更新memcache b. 去mysql获取数据的时候加锁, 让一个进程去mysql拉数据, 其他人返回memcache中的数据 9. 简述队列, 堆栈的原理 10. arrayaccess 定义如下 用它实现一个数组 ArrayAccess { /* Methods */ abstract public boolean offsetExists ( string $offset ) abstract public mixed offsetGet ( string $offset ) abstract public void offsetSet ( string $offset , string $value ) abstract public void offsetUnset ( string $offset ) } 11. 假设coreseek安装目录为/usr/local/coreseek 配置文件为/usr/local/coreseek/etc/test.conf 索引名为 post a. 创建索引 b. 启动服务 c. 重建索引(重建过程中保证搜索服务仍然可用) 12. 假设您有一张posts帖子表 对该表进行sphinx增量准实时索引, 描述你的方案 13. php代码: $i = 97; $a = ($i++) + (++$i) + $i ; $b = (--$i) + ($i--) + $i + 6; echo "$i, $a, $b"; 输出结果是什么? 14. 以下代码,用于取得客户端IP: if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $onlineip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) { $onlineip = getenv('HTTP_X_FORWARDED_FOR'); } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) { $onlineip = getenv('REMOTE_ADDR'); } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) { $onlineip = $_SERVER['REMOTE_ADDR']; } 但是以HTTP_开始的请求header均属于客户端可以伪造的信息,在反向代理环境下,如何保证PHP不会接收到伪造的HTTP_CLIENT_IP, HTTP_X_FORWARDED_FOR值? 15. 例如google,baidu等大型网站,当使用不同客户端(如手机和PC机)访问同样的URL时,呈现的页面却不相同,这是何原理? 如果能给出实际解决方案,可加分。 16. 生产环境php.ini中magic_quotes_gpc及magic_quotes_runtime值应该设置为什么? 17. PHP调用远程http接口时可使用file_get_contents, 但当远程主机不可达或响应过慢,会导致本地PHP进程被长时间挂起,从而影响本地服务器稳定性,如何避免超时时,PHP进程长时间被挂起? 18. 同上题,如何避免DNS查询过慢导致超时? 19. mysql字符集set names * 命令设置哪几个系统变量的值?() A、Character_set_client B、Character_set_system C、Character_set_results D、Character_set_server E、Character_set_connection F、Character_set_database 20. 以下哪种校对规则不区分大小写?() A、utf8_general_ci B、utf8_general_cs C、utf8_general_bin 21. 如何杜绝XSS攻击? 23. 如何杜绝CSRF攻击?
php 内部笔试题
最新推荐文章于 2019-02-14 13:50:33 发布