IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> PHP常见面试题1 -> 正文阅读

[PHP知识库]PHP常见面试题1

一、HTTP常见状态码

200:请求已完成
301:永久重定向
302:临时重定向
304:未修改
400:错误请求
401:未授权
403:已禁止
404:未找到
408:请求超时
500:服务器内部错误
502:网关错误
503:服务不可用
504:网关超时
505HTTP版本不受支持

二、Restful的理解

restful就是一套编写接口的协议,协议规定如何编写以及如何设置返回值、状态码等信息

Restful就是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制

URL定义:POST添加,创建、GET查询、DELETE删除、PUT修改,更新

三、如何防止表单重复提交

1、数据库添加唯一字段
在数据库建表的时候添加主键约束,账号,名称的信息添加唯一性约束,确保数据库只可以添加一条数据
注意:此方法最有效的防止了数据重复提交

2、用js为添加禁用
当用户提交表单之后,可以使用js将提交按钮隐藏(disable属性),防止用户多次点击按钮提交数据
注意:如果客户端禁止使用js,则此方法无效

四、写几个常用的PHP函数

array_column — 返回数组中指定的一列
array_pop — 将数组最后一个单元弹出(出栈)
array_push — 将一个或多个单元压入数组的末尾(入栈)
array_shift — 将数组开头的单元移出数组 
array_unshift — 在数组开头插入一个或多个单元
array_chunk — 将一个数组分割成多个
array_merge — 合并一个或多个数组
array_diff — 计算数组的差集
array_intersect — 计算数组的交集
array_unique — 移除数组中重复的值
array_rand — 从数组中随机取出一个或多个单元
array_product — 计算数组中所有值的乘积
array_sum — 计算数组中所有值的和
array_count_values — 统计数组中所有的值出现的次数
array_slice — 从数组中取出一段
array_combine — 创建一个数组,用一个数组的值作为键名,另一个数组的值作为值
array_search — 在数组中搜索给定的值,如果成功则返回相应的键名 
array_values — 返回数组中所有的值
array_keys — 返回数组中部分的或所有的键名
array_key_exists — 检查给定的键名或索引是否存在于数组中
array_flip 交换数组的键和值
is_array — 检测变量是否是数组
in_array — 检查数组中是否存在某个值
array_fill — 用给定的值填充数组
array_fill_keys — 使用指定的键和值填充数组
array_replace — 使用传递的数组替换第一个数组的元素
array_filter 用回调函数过滤数组中的单元
array_reverse 字符串反转
sort() - 以升序对数组排序
rsort() - 以降序对数组排序

五、写几个常用的字符串函数

strlen($str) — 返回字符串长度
mb_strlen($str) 可以返回中文字符长度;
strtolower($str) — 字母转小写
strtoupper($str) — 字母转大写
ucwords($str) — 将字符串中每个单词的首字母转换为大写
ucfirst($str) — 将字符串的首字母转大写
str_replace('a','b',$str) — 字符串替换  b替换$str 中的a 区分大小写 ;
str_ireplace('a','b',$str) — 字符串替换不区分大小写
trim($str)— 删除字符串左右的空白字符或其他预定义字符
ltrim($str) — 只删除字符串左侧的空白字符或其他预定义字符
rtrim($str) — 只删除字符串右侧的空白字符或其他预定义字符
strpos($str,'a’) — 查找字符串首次出现的位置,字符串a 在$str 第一次出现的位置 索引0开始 没有出现返回false 区分大小写
stripos($str,'a’) — 同上 但是不区分大小写
strrpos($str,'a’) — 查找字符串最后一次出现的位置,字符串a 在$str 最后一次出现的位置 索引0开始 没有出现返回false 区分大小写
strripos($str,'a’) — 同上 但是不区分大小写
substr($str,0,3) — 截取字符串 $str 的第一个字符 截取长度3 长度不填默认截取到最后 参数为负数则倒数   区分大小写
mb_substr — 截取字符串,不区分大小写
strstr($str,'a') — 查找字符串的首次出现,截取字符串 $str 中的第一个字符'a'后的字符串 如 sabc -> abc
stristr——查找字符串的首次出现,不区分大小写
strrchr($str,'a') — 截取字符串 $str 中最后一一个字符'a'后的字符串
strrev($str) — 字符串反转
substr_count — 计算一个字符串在另一个字符串中出现的次数

六、什么是面向对象

面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰。

1、面向对象三大特征
封装	 继承 多态

2、面向对象优缺点
优点:易维护、易扩展、质量高、效率高
缺点:没有准确的定义、不适合所有的应用

3、面向对象编程好处
高内聚 低耦合

4、面向对象五大原则
单一职责原则、开放封闭原则、里氏替换原则、依赖倒置原则、接口分离原则

七、简述public、private、protected修饰符的访问权限

Public:类的公有成员,公开的,所有实例都可以访问
Private:类的私有成员,只有对应的类内部能够调用
Protected,类的保护成员,只有存在继承关系的可以访问,比如子类和父类


1、请写出php5的构造函数和析构函数
parent::__construct()	parent::__destruct();

八、执行以下代码,输出结果是?

<?php
	abstract class a{
		function construct()
		{
			echo "a";
		}
	}
	$a = new a(); 
?>

答案是报错,abstract修饰符可以用于类、方法、事件和索引指示器,表示其为抽象成员,抽象方法是没有方法体的方法.抽象成员、即抽象类、抽象方法、抽象事件

九、写一个无限级分类

实现这种无限级分类,我们只需要在字段中增加一个pid,用于记录父类的id,这时候我们就可以采用递归的方式得到最终的结果,这里面有两种处理方式,一种是得到一个二维数组,一种是得到一个多维数组

十、写一个函数,传入信息写入当天的日志文件(路径自定义),文件不存在则新建

file_get_contents:将整个文件读入一个字符串
file_put_contents:将一个字符串写入文件

十一、Innodb和Myisam有什么区别?

InnoDB支持事务,MyIsam不支持事务
InnoDB支持外键,MyIsam不支持外键
InnoDB是聚簇索引,MyIsam是非聚簇索引
InnoDB支持行锁,MyIsam支持表锁
InnoDB不保存表的具体行数,执行(select count(*) from table)查询的时候需要全表查询,MyIsam执行查询只需要读出变量即可,速度很快

十二、MYSQL优化

避免select *
避免在where子句中对字段进行函数操作或者表达式
避免在where子句中对索引字段进行计算操作
避免在where子句中使用 !=<>操作符
避免在where子句中对字段进行null值判断
避免在where子句中使用or来连接条件
尽量少使用order by rand()
当只有一行数据时使用limit 1
为每一张表设置一个 ID 属性
使用 EXPLAIN 命令优化你的 SELECT 查询,对于复杂、效率低的 sql 语句,我们通常是使用 explain sql 来分析这条 sql 语句,这样方便我们分析,进行优化。
为搜索字段创建索引
选择正确的存储引擎,InnoDB 、MyISAM 、MEMORY 等
进行水平切割或者垂直分割
选择合适的字段类型,选择标准是 尽可能小、尽可能定长、尽可能使用整数。
拆分大的 DELETEINSERT 语句
使用慢查询日志,设置需要优化的sql语句的执行时间,记录下超过该设置时间的语句,即为需要优化的语句

十三、写几个常用的Linux命令

Cd:切换目录
Cd /:切换到根目录
Cd. ./:切换到上一级
Ls:查看当前目录下所有的目录和文件		
Ls-a:显示当前目录下所有目录和文件包括隐藏文件
Ls-l:查看当前目录下所有的目录和文件显示详细信息
Mkdir:创建目录		
Rm:删除目录下的文件	
Rm-rf:强制删除目录下的文件
Mv:重命名
Mv:剪切
Cp:复制
Find:搜索目录
Touch:创建文件
Vim:修改文件
Pwd:显示工作路径
Ctrl+C:中断目前程序
File:查看文件类型
Tar -zxvf:解压一个gzip格式的压缩包
Groupadd:创建一个新用户组
Groupdel:删除一个用户组
Chgrp:改变文件所属组
Chown:改变文件所有者
Chmod:改变文件权限
Netstat -ntlp | grep 端口名:查看端口号被占用
Ps aux | grep a:查看所有进程
Ps -ef:查看所有正在运行的进程
Kill -9:杀死进程
Ping ip:查看与某台机器的连接情况
Systemctl start nginx:启动nginx
Systemctl stop nginx:停止nginx
Systemctl restart nginx:重启nginx
Systemctl status nginx:查看nginx状态
Clear:清屏
Esc:进入底行命令模式  q:退出编辑  q!:强制退出  wq:保存并退出  wq!:强制保存并退出
Service iptables status:查看防火墙
Service iptables stop:关闭防火墙
Chkconfig iptables off:永久关闭防火墙
Service iptables restart:重启防火墙
Head:显示头部日志
head -n 10 test.log:查询日志文件中的头10行日志
Head -n -10 test.log:查询日志文件中除了最后10行的所有日志
Tail:显示尾部日志
tail -n 10 test.log:查询日志尾部最后10行日志
Tail -n +10 test.log:查询日志文件中除了最后10行的所有日志	

十四、请说出TCP/IP四层模型与OSI七层模型

TCP/IP四层模型/协议
1、应用层:负责处理特定的应用程序
2、运输层:主要为两台主机上的应用提供端到端的通信
3、网络层(互联网层):处理分组在网络中的活动,比如分组的选路
4、链路层(数据链路层/网络接口层):包括操作系统中的设备驱动程序、计算机中对应的网络接口卡

ISO/OSI七层模型/协议
1、应用层:网络服务与最终用户的一个接口。协议有:HTTPFTPTFTPSMTPSNMPDNSTELNETHTTPSPOP3DHCP
2、表示层:数据的表示、安全、压缩
3、会话层:建立、管理、终止会话
4、传输层:定义传输数据的协议端口号,以及流控和差错效验
5、网络层:进行逻辑地址寻址、实现不同网络之间的路径选择
6、数据链路层:建立逻辑连接、进行硬件地址寻址、差错效验等功能
7、物理层:建立、维护、断开物理连接
  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-01-11 23:46:49  更:2022-01-11 23:47:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 5:25:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计