文档章节

PHP初级面试题收集

leycau
 leycau
发布于 2014/12/16 17:05
字数 880
阅读 38
收藏 0

1、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分)

首先,确认服务器硬件是否足够支持当前的流量

其次,优化数据库访问。

第三,禁止外部的盗链。

第四,控制大文件的下载。

第五,使用不同主机分流主要流量

第六,使用流量分析统计软件。

附加答案:

1 有效使用缓存,增加缓存命中率

2 使用负载均衡

3 对静态文件使用CDN进行存储和加速

4 想法减少数据库的使用

5 查看出现统计的瓶颈在哪里

2、写一个遍历文件夹所有文件的函数

01 function getFile($path)
02 {
03     if(is_dir($path))
04     {
05         $dir=opendir($path);
06         if($dir)
07         {
08             while($file=readdir($dir))
09             {
10                 if($file=='.'||($file=='..'))
11                     continue;
12                 $newPath=$path.'/'.$file;
13                 if(is_dir($newPath))
14                 {
15                     getFile($newPath);
16                 }
17                 else
18                 {
19                     echo $file.'<br/>';
20                 }
21             }
22         }
23         else
24         {
25             echo 'can not open the dir ';
26         }
27     }
28     else
29     {
30         echo 'there is not a dir';
31     }
32
33 }
34 getFile('D:MEMusic');

3、写一个函数,算出两个文件的相对路径

如 $a = '/a/b/c/d/e.php';

$b = '/a/b/12/34/c.php';

计算出 $b 相对于 $a 的相对路径应该是 http://blog.snsgou.com/c/d将()添上

01 function getRelativePath($a, $b) {
02     $returnPath = array(dirname($b));
03     $arrA = explode('/', $a);
04     $arrB = explode('/', $returnPath[0]);
05     for ($n = 1, $len = count($arrB); $n < $len; $n++) {
06         if ($arrA[$n] != $arrB[$n]) {
07             break;
08         }
09     }
10     if ($len - $n > 0) {
11         $returnPath = array_merge($returnPath, array_fill(1, $len - $n, '..'));
12     }  
13
14     $returnPath = array_merge($returnPath, array_slice($arrA, $n));
15     return implode('/', $returnPath);
16    }
17    echo getRelativePath($a, $b);

4、不用新变量直接交换现有两个变理的值

解法一、

1 <?php
2 $a=1234;
3 $b=4321;
4 list($a,$b)=array($b,$a);
5 ?>

解法二、

$a和$b都为数值的时候:$a=$a+$b;$b=$a-$b;$a=$a-$b;

5、排序id为4,1,9,11的数据

1 select *
2 from temp
3 where id in(4,1,9,11)
4 order by field (id,4,1,11,9);

6、php的垃圾回收机制

PHP 有一个非常简单的垃圾收集器,它实际上将对不再位于内存范围(scope)中的对象进行垃圾收集。垃圾收集的内部方式是使用一个引用计数器,因此当计数器达到 0 时(意味着对该对象的引用都不可用),对象将被当作垃圾收集并从内存中删除。

__destruct /unset

__destruct() 析构函数,是在垃圾对象被回收时执行。

unset 销毁的是指向对象的变量,而不是这个对象。

7、php中的iterator用法:

01 <?php
02 class Sample implements Iterator{
03     private $items=array("a"=>"hello","b"=>"world","c"=>"ok");
04
05     public function current () {
06         return current($this->items);
07     }
08
09     public function next () {
10         return next($this->items);
11     }
12
13     public function key () {
14         return key($this->items);
15     }
16
17     public function valid () {
18         return ($this->current()!==false);
19     }
20
21     public function rewind () {
22         return reset($this->items);
23     }
24 }
25
26 $sample=new Sample();
27 foreach($sample as $key=>$value){
28     echo $key."=>".$value;
29     echo "<br/>";
30 }
31 output result:
32 a=>hello
33 b=>world
34 c=>ok

8、web开发为什么要声称静态页,php如何生成静态页?

首先从访问速度上来说打开更快,对于保护网站数据库更加安全,更加让人期待的是搜索引擎太偏心于HTML页面了。

9、php正则表达式

10、如何修改SESSION的生存时间

1 <?php
2 // 保存一天
3 $lifeTime = 24 * 3600;
4 session_set_cookie_params($lifeTime);
5 session_start();
6 $_SESSION["admin"] = true;
7 ?>

额外题目:

http://www.phpweblog.net/jarryyip/archive/2008/05/04/3263.html

http://blog.sina.com.cn/s/blog_64e2219d0100xdk1.html

http://blog.csdn.net/v_july_v/article/details/6855788

http://bbs.yingjiesheng.com/thread-245284-1-1.html


© 著作权归作者所有

共有 人打赏支持
leycau
粉丝 3
博文 69
码字总数 109273
作品 0
朝阳
程序员
私信 提问
程序猿之间的各种鄙视链,你是否也曾经被屌?

程序员——是一个集思维、情商、行为都异于其他传统岗位的群体。清高自傲、闷骚、会修电脑、宅、不善交际、几百年不洗的衬衫牛仔双肩包…,代表着程序员这个群体的鲜明标签。 在目前互联网发...

架构之路
2018/01/07
0
0
前端相关整理

整理一下最近在网上收集的前端面试相关资料,包括预备知识、书籍、面试考点、面经等。前端方面资料其实太多太多,就光从知乎、前端乱炖、w3cplus 等网站就能找到很多,所以针对细节不发散,仅...

Seas0n_
2016/03/01
106
0
从初级进阶到高级程序员,如何利用w3cschool app编程刷题?

昨日,w3cschool这里给程序员小伙伴们分享了最适合程序员编程刷题的6个网站。 从编程刷题可以大幅度提高我们的编程能力,能让我们从小白进阶到高手。 不过,发现了一个问题:有一部分的程序员...

W3Cschool
2017/11/09
0
0
滴滴出行java面试9个问题,你会几个?

此前,w3cschool app开发者头条发布了网易java面经、阿里巴巴java面经、小米java面经。 今天给程序员小伙伴们分享的是滴滴出行java面经。 通常而言,在学习java过程中,首先要学会自己抓住重...

W3Cschool
2017/12/08
0
0
Android-Java面试

2016 年末,腾讯,百度,华为,搜狗和滴滴面试题汇总 2016 年未,腾讯,百度,华为,搜狗和滴滴面试题汇总 各大公司 Java 后端开发面试题总结 各大公司 Java 后端开发面试题总结 刚出炉的一线...

掘金官方
2018/01/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Mysql(Mariadb)数据库主从复制

Mysql主从复制的实现原理图大致如下: MySQL之间数据复制的基础是以二进制日志文件(binary log file)来实现的,一台MySQL数据库一旦启用二进制日志后,其作为master,它数据库中所有操作都...

linux-tao
50分钟前
2
0
Mysql(Mariadb)数据库主从复制

Mysql主从复制的实现原理图大致如下: MySQL之间数据复制的基础是以二进制日志文件(binary log file)来实现的,一台MySQL数据库一旦启用二进制日志后,其作为master,它数据库中所有操作都...

Linux就该这么学
今天
2
0
Mysql(Mariadb)数据库主从复制

Mysql主从复制的实现原理图大致如下: MySQL之间数据复制的基础是以二进制日志文件(binary log file)来实现的,一台MySQL数据库一旦启用二进制日志后,其作为master,它数据库中所有操作都...

xiangyunyan
今天
2
0
Android 自定义Path贝塞尔曲线View实践——旋转的花朵

一、关于贝塞尔曲线 在工业设计方面贝塞尔曲线有很多用途,同样,在Android中,贝塞尔曲线结合Path类可以实现更复杂的图形,这里我们给一个案例,来实现一种旋转的花朵。对于贝赛尔曲线的理解...

IamOkay
今天
3
0
7、redis主从复制和sentinel配置高可用

一:redis主从配置 1、环境准备 master : 192.168.50.10 6179 slave1: 192.168.50.10 6279 slave2: 192.168.50.10 6379 2、redis.conf配置文件配置 master port 6179......

刘付kin
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部