加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 交互 > 正文

PHP 经典面试题集

发布时间:2020-12-25 07:13:53 所属栏目:交互 来源:网络整理
导读:这篇文章介绍的内容是关于PHP 经典面试题集 PHP 经典面试题集,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 结合我自己面试情况,面对的一些php面试题列举出来,基本上结合自己的看法回答的,不妥的地方请大家指出去,与大家一起讨论分析
副标题[/!--empirenews.page--]

这篇文章介绍的内容是关于PHP 经典面试题集 PHP 经典面试题集,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

结合我自己面试情况,面对的一些php面试题列举出来,基本上结合自己的看法回答的,不妥的地方请大家指出去,与大家一起讨论分析,也希望能帮到正在面试的童鞋们:

1.表单提交中的Get和Post的异同点

get 请求一般用于向服务端获取数据,post 一般向服务端提交数据

get 传输的参数在 url 中,传递参数大小有限制,post 没有大小限制,

get 不安全,post 安全性比get高

get请求在服务端用Request.queryString 接受,post 请求在服务端用Requset.form 接受

?

2.HTML的base标签是干什么用的

必须写在head 中, base 标签为页面上的所有链接规定默认地址或默认目标

?

3.echo(),print(),print_r()的区别?

echo是PHP语句,print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)

print() 只能打印出简单类型变量的值(如int,string)

print_r() 可以打印出复杂类型变量的值(如数组,对象)

echo 输出一个或者多个字符串

?

4.写一个email的正则表达式
/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/
5.数组[‘a’,‘b’,‘c’] 转换成字符串 ‘abc’
echo  implode(‘’,[‘a’,‘c’]); 

 

echo   join([‘a’,‘c’],'');
6.获取字符串’aAbB’中A首次出现的位置
$str=‘aAbB’;

echo strpos($str,"A");
7. 编写一段用最小代价实现将字符串完全反序,e.g. 将 “1234567890” 转换成 “0987654321”. (用前述你最熟悉的语言编写并标注简单注释,不要使用函数,
$s = '1234567890';

$o = '';

$i = 0;

while(isset($s[$i]) && $s[$i] != null) {

    $o = $s[$i++].$o;

}

 

echo $o;
8.请用递归实现一个阶乘求值算法 F(n): n=5;F(n)=5!=5*4*3*2*1=120
function F($n){    

 if($n==0){         

 return 1;      

 }else{         

 return $n* F($n-1);      

 }

 }var_dump(F(5));
9.将字符长fang-zhi-gang 转化为驼峰法的形式:FangZhiGang
//方法一

function Fun($str){   

 if(isset($str) && !empty($str)){       

  $newStr='';       

  if(strpos($str,'-')>0){          

   $strArray=explode('-',$str);          

    $len=count($strArray);           

    for ($i=0;$i<$len;$i++){               

    $newStr.=ucfirst($strArray[$i]);           

    } 

          }      

           return $newStr;    }

           }

//方法二function Fun($str){  

 $arr1=explode('_',$str);   

 $str = implode(' ',$arr1);   

 return ucwords($str);

 }

 var_dump(Fun("fang-zhi-gang")); //FangZhiGang
10.数组内置的排序方法有哪些?
sort($array); //数组升序排序

rsort($array); //数组降序排序

 

asort($array);  //根据值,以升序对关联数组进行排序

ksort($array);  //根据建,以升序对关联数组进行排序

 

arsort($array);   //根据值,以降序对关联数组进行排序

krsort($array);  // 根据键,以降序对关联数组进行排序
11.用PHP写出显示客户端IP与服务器IP的代码
$_SERVER["REMOTE_ADDR"]

$_SERVER["SERVER_ADDR"]
12.语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们?
require是无条件包含也就是如果一个流程里加入require,无论条件成立与否都会先执行require

 

include有返回值,而require没有(可能因为如此require的速度比include快)

 

包含文件不存在或者语法错误的时候require是致命的错误终止执行,include不是
13.session与cookie的区别?
session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放

cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。

两者都可通过时间来设置时间长短

14.PHP 不使用第三个变量实现交换两个变量的值

//方法一

$a.=$b;

$b=str_replace($b,"",$a);

$a=str_replace($b,$a);

 

//方法二

list($b,$a)=array($a,$b);

var_dump($a,$b);

15.写一个方法获取文件的扩展名

function get_extension($file){

   //方法一   

   return  substr(strrchr($file,'.'),1);   

   //方法二   

   return  end(explode('.',$file));

   }echo  get_extension('fangzhigang.png'); //png

16.用PHP打印出前一天的时间格式是2017-3-22 22:21:21

$a= date("Y-m-d H:i:s",strtotime("-1 days")); 

17.sql语句应该考虑哪些安全性

(1)防止sql注入,对特殊字符进行转义,过滤或者使用预编译sql语句绑定

(2)使用最小权限原则,特别是不要使用root账户,微不同的动作或者操作建立不同的账户

(3)当sql出错时,不要把数据库出错的信息暴露到客户端

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读