PHP基本面试题

为君一笑 提交于 2019-12-07 00:29:38

1.用 PHP 获取当前时间并打印,打印格式:2006-5-10 22:21:21

date_default_timezone_set(‘PRC’) //设置时区
echo date(‘Y-n-d H:i:s’); //m和n不同 m(05)n(5)

2.字符串转数组,数组转字符串,字符串截取,字符串替换,字符串查找的函数分别是什么?

字符串转数组:explode(" “,str);implode("",str); 数组转字符串:implode(" ",str);
字符串截取:substr(str,,);strreplace(str, , ); 字符串替换:str_replace(str);page_replace(” “,str);strpos(str); 字符串查找:strpos(str,” “);第一次出现的位置 strrpos($str,” ");最后一次出现的位置

3.防sql注入

1)mysql服务器用户权限问题
2)用addslashes函数把表单数据进行转义处理
3)用htmlspecialchars函数把表单数据进行实体化
4)使用mysql预处理机制发送执行sql语句
5)及时给mysql软件更新补丁

4.防盗链

$_SERVER[‘HTTP_REFERER’];
#获取上一个页面的来源url,通过url中的域名或ip可以判断是否是来自本机的某一个脚本

5.mysql服务器如何优化

1、查看mysql的查询日志
2、用desc分析一条sql是否优化
3、给需要优化的字段加索引

6.登陆设计的安全

1、验证码
2、U盾
3、动态口令卡
4、限制登陆次数
5、使用数字键盘
6、密码不能粘贴

7.能正确得到’a’的代码是什么?A C D

<?php $str=array('name'=>'a','age'=>'b'); ?>

A: echo "a is {$str['name']}";
B: echo "a is $str['name']";
C:echo "a is {$str[name]}";
D:echo "a is $str[name]";

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

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

9.SESSION和COOKIE的区别是什么?

1、session保存在服务器上,cookie保存在客户端,session依赖cookie进行传输,如果cookie被
禁用了,session将不能继续使用

10.HTTP状态爱中302,403,500代码的含义?

200 正常响应,302重定向,403服务器拒绝访问,500服务器内部错误

11.如何让禁用cookie的客户端还可以实现session数据共享?

找到php.ini;
session.use_trans_sid=1
会在url上自动加上session_id

12.isset()和empty()区别,对不同数据的判断结果

1、isset()是判读变量是否存在,是否定义
2、empty()是判读变量的值是否为空

13.面向对象中接口和抽象类的区别及应用场景:

不用点
1、抽象类中可以有非抽象的方法而接口中只能够有抽象方法!
2、一个类可以继承多个接口,而一个类只能继承一个抽象类!
3、接口的使用方法通过implements关键字进行,抽象类则是通过继承extends关键字进行!

14.smarty模板引擎关键字:

1、foreach
2、volist
3、assign
4、display
5、switch
6、for
7、if
8、php标签
9、模板继承
10、定界符

15.如下程序输出结果

<?php
$test='aaaaaa';
$abc=& $test;
unset($test);
echo $abc;
?>
echo aaaaaa;

16.写一个函数,将字符串"open_door"转换成"OpenDoor"

function strim($str){
return str_replace(' ','',ucwords(str_replace('_',' ',$str)));
}
echo strim('open_door');

17.请写一个函数1234567890转换成1,234,567,890每3位用逗号隔开:

$num='1234567890';
function number($num){
return number_format($num);
}
echo number($num);

18.Linux 如何实现每天0点钟重启服务器

crontab -e
00 00 * * * /sbin/reboot
分 时 日 月 周

19.Linux 当前目录下有一个文件为showme.sh如何修改文件,将其指定为使用 /bin/bash 运行

如何修改权限为所有用户可读写,所有用户可执行:

vi showme.sh
#! /bin/bash      (#!找到脚本解析器)
echo 123123	      (随便写入内容)
chmod 777		  (所有用户都有权限)

20.表单数据提交方式 POST 和 GET 的区别,URL 地址传递的数据最大长度是多少?

$_GET 传参是请求 HTTP 协议通过 url 参数传递和接收,会在浏览器地址栏中看到
$_GET 传参最多 2k 个字符
$_POST 是实体数据传参,隐藏式的,可以通过表单提交大量信息

21.SESSION 和 COOKIE 的作用和区别,SESSION 信息的存储方式,如何进行遍历?

  1. SESSION:存储在服务器端, cookie:存储在客户端
  2. 两者都可通过时间来设置时间长短
  3. cookie 不安全,考虑安全性还是用 session
  4. session保存到服务器端,如果访问量过大,对服务器性能很影响,应使用memcache缓存
    session
  5. 单个 COOKIE 在客户端限制是 3K,即存放的 cookie 不能超过 3K,SESSION 没有限制
  6. 禁止了 COOKIE 后 SESSION 是不能使用的,session 因为存储在服务器端,具体路径在
    php.ini 中 session_dir 目录中,是私有的每个用户产生 session 都不同
    因为$_SESSION 是数组所以遍历就用数组的方式遍历

22.通过PHP函数的方式对目录进行遍历,写出程序

<?php
$dir='datetest';
function dirList($dir){
    $arr=scandir($dir);
    foreach ($arr as $file) {
        if($file!='.' && $file!='..'){
            $path=$dir.'/'.$file;
            if(is_dir($file)){
                dirList($path);
            }else{
                echo "<p>{$path}</p>";
            }
        }
    }
}
dirList($dir);
?>

23.什么是数据库索引,主键索引,唯一索引的区别,索引的缺点是什么?

1、数据库索引是给数据库中的每张表建立索引,便于检索提高select效率
2、主键索引是给每张表的主键设置索引
3、主键索引包含唯一索引,每张表只能有一个主键索引但可以有多个唯一索引
4、索引的缺点 占用空间

24.echo,print,print_r 的区别?

1.echo和print是语言结构,print_r是函数
2.echo可以有多个参数
3.echo和print是一般打印变量(int,string),print_r一般用来打印复合变量(数组和对象)

25.printf和sprintf和区别?

1.printf格式化输出变量
2.sprintf是格式化返回变量

26.模板引擎

1.smarty
2.thinkphp
3.traintpl

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!