2013腾讯web前端实习生一面总结

1、@:屏蔽错误信息。

2、php错误类型

error_reporting() 设置 PHP 的报错级别并返回当前级别。

//禁用错误报告

error_reporting(0);

E_ALL – 所有的错误和警告

E_ERROR – 致命性运行时错

E_WARNING – 运行时警告(非致命性错)

E_PARSE – 编译时解析错误

E_NOTICE – 运行时提醒(这些经常是是你的代码的bug引起的,

常量

描述

1

E_ERROR

Fatal run-time errors. Errors that can not be recovered from. Execution of the script is halted

2

E_WARNING

Non-fatal run-time errors. Execution of the script is not halted

4

E_PARSE

Compile-time parse errors. Parse errors should only be generated by the parser

8

E_NOTICE

Run-time notices. The script found something that might be an error, but could also happen when running a script normally

8191

E_ALL

All errors and warnings, except level E_STRICT (E_STRICT will be part of E_ALL as of PHP 6.0)

关闭错误:error_reporting(0);

报告指定的错误:error_reporting(E_ERROR | E_WARNING | E_PARSE);

报告除了^(仅指一个)指出的错误:error_reporting(E_ALL ^ E_NOTICE);

报告所有错误:error_reporting(E_ALL);或error_reporting(-1);

3、MVC模型

4、http请求:

304(未修改):自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。

5、CI

CI优点:1、免费,开源。2、生成干净的url,对搜索引擎友好。3、可扩展的,可以自定义类库和辅助函数。4、不需要模板引擎。

6、php路由

php的路由机制

1、路由机制就是把某一个特定形式的URL结构中提炼出来系统对应的参数。举个例子,如:http://main.wopop.com/article/1  其中:/article/1  -> ?_m=article&id=1。

2、然后将拥有对应参数的URL转换成特定形式的URL结构,是上面的过程的逆向过程。

PHP的URL路由方式

总体来说就是:获取路径信息->处理路径信息

URL路由方式:

第一种是通过url参数进行映射的方式,一般是两个参数,分别代表控制器类和方法比如index.php?c=index&m=index映射到的是index控制器的index方法。

第二种,是通过url-rewrite的方式,这样的好处是可以实现对非php结尾的其他后缀进行映射,当然通过rewrite也可以实现第一种方式,不过纯使用rewrite的也比较常见,一般需要配置apache的rewrite规则

1. <IfModule mod_rewrite.c>

2.     RewriteEngine On

3.     RewriteBase /

4.     RewriteRule ^index\.php$ – [L]

5.     RewriteCond %{REQUEST_FILENAME} !-f

6.     RewriteCond %{REQUEST_FILENAME} !-d

7.     RewriteRule . /index.php [L]

8. </IfModule>

第三种,就是通过pathinfo的方式,所谓的pathinfo,就是形如这样的url。xxx.com/index.php/c/index/aa/cc,apache在处理这个url的时候会把index.php后面的部分输入到环境变量$_SERVER[‘PATH_INFO’],它等于/c/index/aa/cc。然后我们的路由器再通过解析这个串进行分析就可以了,后面的部分放入到参数什么地方的,就依据各个框架不同而不同了。

7、缓存

在WEB开发中,缓存可以分为:

1、数据库端缓存

“空间换时间”。比如建一个表来存储另外一个表某个类型的数据的总条数,在每次更新数据的时候同事更新数据表和统计条数的表。在需要获取某个类型的数据的条数的时候,就不需要select count去查询,直接查询统计表就可以了,这样可以提高查询的速度和数据库的性能。

2、应用层缓存

应用层缓存这块跟开发人员关系最大,也是平时经常接触的。

1.缓存数据库的查询结果,减少数据的压力。这个在大型网站是必须做的。

2.缓存磁盘文件的数据。比如常用的数据可以放到内存,不用每次都去读取磁盘,特别是密集计算的程序,比如中文分词的词库。

3.缓存某个耗时的计算操作,比如数据统计。

 

3、前端缓存

前端缓存可以理解为一般使用的cdn技术,利用squid等做前端缓冲技术,主要还是针对静态文件类型,比如图片,css,js,html等静态文件。

4、客户端缓存

客户端缓存依赖于浏览器的实现,目前一般的浏览器都实现了基于http都信息来缓存相应的文件。

 

php缓存

1、普遍缓存技术:

数据缓存:这里所说的数据缓存是指数据库查询PHP缓存机制,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后保存到文件中,以后同样的查询结果就直接从缓存表或文件中获得。

2、页面缓存:

每次访问页面的时候,都会先检测相应的缓存页面文件是否存在,如果不存在,就连接数据库,得到数据,显示页面并同时生成缓存页面文件,这样下次访问的时候页面文件就发挥作用了。(模板引擎和网上常见的一些PHP缓存机制类通常有此功能)

3、时间触发缓存:

检查文件是否存在并且时间戳小于设置的过期时间,如果文件修改的时间戳比当前时间戳减去过期时间戳大,那么就用缓存,否则更新缓存。

4、内容触发缓存:

当插入数据或更新数据时,强制更新PHP缓存机制。

5、静态缓存:

这里所说的静态缓存是指静态化,直接生成HTML或XML等文本文件,有更新的时候重生成一次,适合于不太变化的页面,这就不说了。

6、内存缓存:

Memcached是高性能的,分布式的内存对象PHP缓存机制系统,用于在动态应用中减少数据库负载,提升访问速度。

8、浏览器缓存

最简单的方法是在头部加<meta>标签

<METAHTTP-EQUIV=”Cache-Control” CONTENT=”no-cache,no-store,must-revalidate”>

<METAHTTP-EQUIV=”pragma” CONTENT=”no-cache”>

<METAHTTP-EQUIV=”expires” CONTENT=”0″>

<?php

header(“Cache-control:no-cache,no-store,must-revalidate”);

header(“Pragma:no-cache”);

header(“Expires:0”);

?>

如果在<META HTTP-EQUIV=”Cache-Control” CONTENT=”no-cache,no-store, must-revalidate”>或header(“Cache-control:no-cache,no-store,must-revalidate”);中少了no-store就解决不了火狐的缓存了

9、php最大内存

memory_limit = 128M;

修改1、php.ini文件中

修改2:php文件中,ini_set(‘memory_limit’,’128M’);

10、页面访问慢,如何解决?

先查找页面慢的原因,在解决,发现问题比解决问题更重要。

11、get与post

1.安全性get 请求的数据会显示在 地址栏上, post请求的数据,放在http协议的消息体

2. 从可以提交数据的大小看.

2.1  http协议本身并没有限制数据大小.

2.2  浏览器在对get 和post请求做显示, get 请求数据 2k+35  ,post没有显示.

3.  get请求可以更好的添加到收藏夹.

13、数组类型:

有三种数组类型:

1、   数值数组:数值数组存储的每个元素都带有一个数字 ID 键。

$names =array(“Peter”,”Quagmire”,”Joe”);

2、   关联数组(key=>value):它的每个 ID 键都关联一个值。在存储有关具体命名的值的数据时,使用数值数组不是最好的做法。

通过关联数组,我们可以把值作为键,并向它们赋值

$ages = array(“Peter”=>32,”Quagmire”=>30, “Joe”=>34);

3、   多维数组:在多维数组中,主数组中的每个元素也是一个数组。在子数组中的每个元素也可以是数组

Array

(

[Griffin] => Array

(

[0] => Peter

[1]=> Lois

)

[Brown] => Array

(

[0] => Cleveland

[1] => Loretta

)

)

 

web测试工具:PhpUnit,Web Application Stress Tool

标签