首页 > 代码库 > 一些总结

一些总结

1.本地IP$_SERVER[‘REMOTE_ADDR‘] 服务器端IP$_SERVER[‘HTTP_HOST‘]

2.对于大流量的网站,您采用什么样的方法来解决访问量问题?
确认服务器硬件是否支持当前流量,用nginx作为服务器实现负载均衡,数据库读写分离,搭建主从、主主服务器,优化数据表、优化查询语句,程序功能规则、防止外部盗链、控制大文件的下载

3.require和include的区别,为避免多次包含同一文件,可用(?)语句代替它们
require是无条件包含,如果在一个流程内加入require,无论引入成功与否都会先执行require
include有返回值,require 没有
包含文件不存在时,require会返回一个致命的错误,而include会继续执行
require_once include_once

4.如何修改session的生命周期。
session_set_cookie_params()

5.http状态码。
200:请求成功。
301:页面已永久重定向
303:查看其它地址
304:所请求的资源未修改
403:服务器已拒绝请求
404:服务器无法找到页面
500:服务器内部错误,无法完成请求。

6.php中传值和传引用的区别。
按值传递:函数范围内任何改变在函数外部都会被忽略。
按引用传递:函数范围内任何改变在函数外部也能反映。
按值传递时,必须复制值,在值的长度较长时,会影响效率。按引用传递时,不需要复制值,对于性能提高有好处。

7.写一个函数,统计文件夹下所有文件的大小。
答:
function dirSize($path){

//2.打开目录
$resource = opendir($path);

//定义一个统计大小的变量
$count = 0;

//3.读取目录
while($file = readdir($resource)){

//过滤特殊目录
if($file=="." || $file==".."){
continue;
}

//拼接完整的文件路径
$filename = rtrim($path,"/")."/".$file;

//判断是不是一个文件
if(is_file($filename)){
$count+=filesize($filename);
}

//判断是不是一个目录
if(is_dir($filename)){
$count += dirSize($filename);
}
}

//4.关闭目录
closedir($resource);

//返回统计目录的大小
return $count;
}

8.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?

先用2根绳子,其中1根一头点火,另1根两头点火,当第2根烧完的时候(即半小时),把第1根的另一头也点火,则当第1根烧完的时候,时间为45分钟;再另外用第3根绳子两头同时点火,烧完为30分钟,加起来为1小时15分钟.

9.8个铁球,中间有一个是空心的,请问用天平称最少几次称出?那18个呢?

把8个铁球编号为1到8.
在天平两边个放上3个.1到6号,如果相等 那么再把7、8号放上,即可
如果1到6号不相等.1.2.3号或是4.5.6号 把1.2号放上,即可 ,如果是4.5.6号照做即可.
所以8个铁球只用2次称.
18个铁球,也按号1到18号
先拿出17.18号
一边各放8个铁球.如果1到8号和9到16号相等,那17.18称一次即可.只需两次
如果不相等 责排除17.18 在1到8号 或是9到16号中 余下就按照上面的8个做法来做.
则需要三次.

10.什么是面向对象?主要特征是什么?
面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰。
主要特征:封装、继承、多态

11.date_default_timezone_set();设置默认时区

12.开启php错误报告的方法。
display_errors = On

13.
function myfunc($argument)
{
echo $argument + 10;
}

$variable = 10;

echo "myfunc($variable)=".myfunc($variable);

结果为:20myfunc(10)=

14. php开发接口

目录结构:App 项目目录
Config 配置目录
Core 核心目录

15.php的闭包。
闭包是引用了自由变量的函数,这个被应用的自由变量将和这个函数一同存在,即使离开了创建它的环境也一样,所以闭包也可认为是有函数和与其相关引用组合而成的实体。
在一些语言中,在函数内定义另一个函数的时候,如果内部函数引用到外部函数的变量,则可能产生闭包。

16.数据库优化。
  选取合适的字段:长度尽可能小、数字>时间>枚举>字符串,尽量不要使用null类型。

  数据库分库分表。

  数据库读写分离,搭建主从主主服务器

  中文分词 scws

  三范式标准:原子性、无冗余性、唯一性
  使用JOIN连接代替子查询
  使用UNION来代替手动创建的临时表
  多个语句后面跟一个UNION
  使用事务处理
    $pdo = new PDO(‘mysql:host=localhost;dbname=test;charset=utf8;‘, ‘root‘, ‘‘);
    $pdo -> beginTransaction();
    $num1 = $pdo->exec();
    if (!num1){$pdo->rollback();}
    $pdo->commit();
  锁定表
    LOCK TABLE inventory WRITE SELECT Quantity FROM inventory WHERE Item=‘book‘;
    UPDATE inventory SET Quantity=11 WHERE Item=‘book‘;UNLOCKTABLES
  使用外键
  使用索引
  优化查询语句
    首先,最好是在相同类型的字段间进行比较的操作
    其次,在建有索引的字段上尽量不要使用函数进行操作
    最后,避免使用like关键字

17.sql语句优化
  避免全表扫描,在where及order涉及的列上建立索引。
  应尽量避免判断null值。
  应尽量避免在where子句中使用!=和<>操作符,否则将放弃索引而进行全表扫描。
  应尽量避免在where子句中使用or来连接条件
  谨慎使用in和not in
  能用between就不要用in
  用exist代替in
  应尽量避免使用like关键字
  应尽量避免在where子句中对字段进行函数操作
  数据量大的表使用join,要先分页在join
  避免频繁创建和删除临时表。

一些总结