php语言 百分网手机站

PHP面试常用知识

时间:2020-09-26 10:31:13 php语言 我要投稿

PHP面试常用知识大全

  PHP是一种通用开源脚本语言。下面小编整理了PHP面试常用知识大全,希望对大家有帮助!

PHP面试常用知识大全

  1、php时间处理

  a、获取前一天 echo date(‘Y-m-d H:i:s’, strtotime(“-1 day”))

  b、某个时间的前一天

  $date = new DateTime(now());

  $date->add(new DateInterval(P10D));

  $date->sub(new DateInterval(PT1440M));

  2、字符串翻转 strrev

  3、mysql关于时间的函数 now() month() year day dayofweek()

  4、截取中文无乱码的`方法

  5、客户端、服务器变量

  $_SERVER[‘remote_addr’] $_SERVER[’SERVER_ADDR’]

  5.1 是否为代理

  5.2判断是否为ajax请求

  isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']==='XMLHttpRequest';

  6、session设置过期时间

  session_set_cookie_params(24*3600);

  7、常用排序函数

  sort rsort ksort krsort natsort

  8、字符串的处理,常用数组相关

  explode implode

  9、常用的html标签处理函数

  htmlentities 标签转换为"等

  html_entity_decode 转换回来

  addslashes

  阅读安全那一章节

  9.2 入数据库前的处理

  mysql_real_escape_string();

  10、内存相关函数

  memory_get_usage()

  memory_get_peak_usage()

  memory_limit限制内存使用

  11、获取客户端ip,要考虑代理

  if($_SERVER[‘http_x_forwarded_for’] != ‘’){

  $clientIp = !empty($_SERVER[‘REMOTE_ADDR’]) ? $_SERVER[‘REMOTE_ADDR’] : !empty($_ENV[‘REMOTE_ADDR’]) ? $_ENV[‘REMOTE_ADDR’] : ‘unknown’;

  }

  12、验证电子邮件

  echo preg_match(‘/^[w-.]+@[w-.]+[.w+]+$/’, $email);

  13、文件扩展名

  parse_url PHP_URL_SCHEMAPHP_URL_HOSTPORTPATHQUERYFRAGEMENT

  pathinfo basenameextensionfilenamedirname

  basename 正则

  14、strrchr(str, $delimiter)

  HTTP常用知识点

  15、http协议常用code

  16、http1.1与http1.0的区别

  增加了长连接以及复用链接的tcp技能,增加了host(虚拟), cache_control,

  16.2 http请求头信息

  host,url,method,accept_language,content_length,user_agent,code,cache_control,tag,expire,server

  17、enctype=‘multipart/form-data’

  18、setcookie(name,value,expire,path,domain)

  19、时区设置 date_default_timezone_set(‘Asia/shanghai’)

  或者php.ini中修改date.time_zone

  20、查看php.ini的位置

  phpinfo() | grep php.ini

  21、slowlog在php-fpm.ini中设置

  request_slowlog_timeout=1s

  slowlog=/path/to/slowlog.log

  22、魔术方法

  __SET, __GET, __CALL, __toString, __construct, __destruct, __set, __isset, __unset, __autoload, __clone

  23、static静态绑定

  24、安全模式对系统函数的影响

  之所以有安全模式,是为了试图去解决共享web服务器问题而产生的,避免注入脚本去执行脚本等。但即使禁止了php脚本,

  攻击人员仍可以使用perl脚本,所以从5.4版本起被废除。

  只要影响系统文件相关操作,会判断文件的owner跟当前owner是否为同一个,为同一个则执行。

  25、php中垃圾回收机制

  首先变量超出自己的作用域会被自动回收内存,也可以使用unset主动释放内存。一次web请求结束后,程序中对象占用的内存也会被释放掉。

  26、为何对象支持foreach,原理是啥?

  foreach一个对象,是因为对象实现了Iterator接口,或者子接口ArrayIterator。

  foreach时实际调用被循环对象的相关方法实现的,接口方法有rewind,next,current,key,valid

  27、安全写一个文件

  function write_file($filename, $content){

  $file = fopen($filename, 'w+');

  while(!flock($file, LOCK_EX)){

  }

  fwrite($file, $content);

  fclose($file);//会释放锁

  }