php 笔试题汇总
更新:HHH   时间:2023-1-7


配置计划任务每周一的11.12执行脚本/usr/test/1.bash

12 11 * * 1 /bin/bash /usr/test/1.bash

正则表达式验证邮箱

!preg_match(“/^[0-9a-zA-Z-]+@[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+){1,3}$/”,$email)

传值和传引用的区别

按值传递:函数范围内对值的任何改变在函数外部都会被忽略
按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改
优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。按引用传递则不需要复制值,对于性能提高很有好处。

SESSION 与 COOKIE的区别

1、http无状态协议,不能区分用户是否是从同一个网站上来的,同一个用户请求不同的页面不能看做是同一个用户
2、SESSION存储在服务器端,COOKIE保存在客户端。Session比较安全,cookie用某些手段可以修改,不安全。Session依赖于cookie进行传递。
禁用cookie后,session不能正常使用。Session的缺点:保存在服务器端,每次读取都从服务器进行读取,对服务器有资源消耗。Session保存在服务器端的文件或数据库中,默认保存在文件中,文件路径由php配置文件的session.save_path指定。Session文件是公有的。

实现中文字串截取无乱码的方法。

mb_substr('中午ab希望',2)

PHP中如何判断一个字符串是否是合法的日期模式

date('Y-m-d H:i:s',strtotime($data)) == $data

数据过滤

做一般表单提交的时候完全可以用strip_tags去除html标签
htmlentities这个函数转换所有含有对应“html实体”的特殊字符,比如货币表示符号欧元英镑等、版权符号等
htmlspecialchars 只是把某些特殊的字符转义了, & " ' < >

缓存一致性问题

缓存更新套路:
失效:应用程序先从cache取数据,没有得到,则从数据库中取数据,成功后,放到缓存中。
命中:应用程序从cache中取数据,取到后返回。
更新:先把数据存到数据库中,成功后,再让缓存失效。

isset在什么适合返回false

检测变量是否已设置并且非 NULL
NULL
$arr['name'] 数组中没有这个key

empty 什么时候返回false

  • "" (空字符串)
  • 0 (作为整数的0)
  • 0.0 (作为浮点数的0)
  • "0" (作为字符串的0)
  • NULL
  • FALSE
  • array() (一个空数组)
  • $var; (一个声明了,但是没有值的变量)

判断上传文件类型是不是图片

$type = $_FILES['file']['type'];
if (strpos($mini, 'image') === false) {
    return false;
} else {
    return true;
}

补充:getimagesize($filename),此函数会返回图片尺寸,格式等,如果文件不是图片会返回false
返回:array(7) {
[0]=>
int(2976)
[1]=>
int(3968)
[2]=>
int(2)
[3]=>
string(26) "width="2976" height="3968""
["bits"]=>
int(8)
["channels"]=>
int(3)
["mime"]=>
string(10) "image/jpeg"
}

返回web开发教程...