php面试题1

2020-11-22  本文已影响0人  狂暴小绵羊
  1. include 和require 都能把另外一个文件包含到当前文件中,他们有什么区别? include和include_once 又有什么区别?

二者的区别只有一个,那就是对包含文件的需求程度
include 就是包含,如果被包含的文件不存在的话,那么则会提示一个错误,但是程序会继续执行下去。
reruqire 意思就是需要,如果被包含文件不存在或者无法打开时候,则会提示错误并且终止程序的执行。
俩者除了在如何处理失败之外完全一样
once 的意思时一次,那么include_once和require_once表示只包含一次,避免重复包含

  1. 表单中get与post提交方法的区别?

get请求能够被cache,get请求能够被保存在浏览器的浏览历史里面post 不进行缓存
get 参数是带在url后面,传统ie中url的最大可用长度为2053字符,其他浏览器对url长度限制实现上有所不同。post 请求无长度限制
get 提交数据大小,不同浏览器限制不同,一般在2k-8k之间,post提交数据比较大,大小靠服务器的设定值限制,而且某些数据只能用post方法携带,比如file.
全部用post不是十分合理,最好先把请求按功能和场景分类,对数据请求频繁,数据不敏感且数据量在普通浏览器最小限制2k范围内,这样的情况使用get,其他地方使用post
get的本质是得,而post的本质是给。而且get是幂的,在这一点上,get被认为是安全的。但实际上server端也可以用作资源更新,但是这种用法违反了约定,容易造成csrf(跨站请求访问)

  1. 用php 打印出前一天的时间

echo date('Y-m-d H:i:s',tiem()-24*3600)echo date('Y-m-d H:i:s',strtotime('-1 day'))

4.假设现在有一个字符串 ww.baidu.com 如何使用 PHP 对他进行操作使字符串以 moc.udiab.输出?

$str='www.baidu.com;
//先替换,再反转
$str = str_replace('www','',$str);
echo strrev($str);
  1. 用 php 写出显示客户端 IP 与服务器 IP 的代码

客户端ip:$_SERVER['REMOTE_ADDR'] 服务器ip: $_SERVER['SERVER_ADDR']

  1. 计算某段字符串中某个字符串出现的次数

echo substr_count($test,'g')

  1. 写一个函数,能够遍历一个文件夹下的所有文件和子文件夹
function my_scandir($dir)
{
    $files = array();
    if( $handle = opendir($dir)){
        while(($file = $readdir($handle)) !== false){
            if($file != ".." && $file != "."){
              if(is_dir($dir."/".$flie)){
                $file[file] = scandir($dir . '/' . $file);
              }else{
                $files[] = $file;
              }
            }
        }
        closedir($handle);
        return $files;
    }  
}
  1. 列出你所知道的全局变量

$_ENV; $_SERVER; $_REQUEST; $_FILES; $_SESSION; $_COOKIE; $_GET; $_POST; $GLOBALS

  1. session 与 cookie 的区别

seeion:存储用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放
cookie:用来存储连续访问一个页面时所使用,是存贮在客户端,对cookie来说是存储在win的temp目录中

  1. 什么事面向对象?主要特征是什么?

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

  1. HTTP 状态中302、403、 500代码含义?

一消息,二成功,三重定向,四请求错误,五服务器端错误
302:临时转移成功,请求内容已转移到新的位置
401:未授权
403:禁止访问
500: 服务器内部错误

  1. Linux下建立压缩包,解压缩包的命令

打包:tar czf file.tar.gz file.text
解压:tar xzf file.tar.gz

  1. 请写出数据类型(int char varchar datetime text)的意思;请问 varchar 和 char有什么区别?

int 整数 char定长字符串 Varchar变长字符串 Datetime 日期时间型 Text文本型
Varchar是可变长度的字符类型,内容有多大就占多少空间,能有效节省空间。由于varchar类型是可变的,所以在数据长度改变时,服务器要进行额外操作所以效率比char类型低

  1. MyISAM和InnoDB的基本区别?索引结构如何实现

MyISAM类型不支持事务,表锁,易产生碎片,要经常优化,读写速度较快
InnoDB类型支持事务,行锁,有奔溃恢复能力。读写速度比MyISAM慢
创建索引:alert table tablename add index('字段名')

  1. isset() 和 empty() 区别

isset判断变量是否存在,可以传入多个变量,若其中一个变量不存在则返回假,
empty判断变量是否为空为假,只可传一个变量,如果为空为假则返回真

  1. 如何在页面之间传递变量?

get , post ,cookie, session, 隐藏表单

  1. 请写出常见的排序算法

冒泡排序法, 快速排序法,简单选择排序法,堆排序法,直接插入排序法,希尔排序法,合并排序法

  1. error_reporting 这个函数的作用

设置php 的报错级别并返回当前级别

  1. 你所知道的php 数组相关的函数
  1. php读取文件内容的几种方法和函数?

打开文件然后读取:Fopen();fread()
打开读取一次完成: file_get_contents()

20 说说你对缓存技术的了解?

1、缓存技术是将动态内容缓存到文件中,在一定时间内访问动态页面直接调用缓存文件,而不必重新访问数据库。
2、使用memcache可以做缓存。

  1. 你所知道的设计模式有哪些

工厂模式、策略模式、单元素模式、观察者模式、命令链模式

  1. 你常用到的mysql命令
show databases
show tables
inset into 表名 ()values()
Update 表名 set 字段=值 where ...
Delete from 表名 where ...
Select * from 表名 where 条件 order by ... Desc/asc limit ..... Group by ... Having
上一篇下一篇

猜你喜欢

热点阅读