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常见面试题 -> 正文阅读

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

php常见面试题

常见面试题

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

get 请求一般用于向服务端获取数据,post 一般向服务端提交数据
get 传输的参数在 url 中,传递参数大小有限制,post 没有大小限制,
get 不安全,post 安全性比get高
get请求在服务端用Request.queryString 接受 ,post 请求在服务端用Requset.form 接受

HTML的base标签是干什么用的

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

echo(),print(),print_r()的区别

echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)
print() 只能打印出简单类型变量的值(如int,string)
print_r() 可以打印出复杂类型变量的值(如数组,对象)
echo 输出一个或者多个字符串

写一个email的正则表达式

/[1]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$/

数组[‘a’, ‘b’, ‘c’] 转换成字符串 ‘abc’

echo  implode(‘’,[‘a’, ‘b’, ‘c’]); 
echo   join([‘a’, ‘b’, ‘c’],'');

获取字符串’aAbB’中A首次出现的位置

$str=‘aAbB’;
echo strpos($str,"A");

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

$s = '1234567890';
$o = '';
$i = 0;
while(isset($s[$i]) && $s[$i] != null) {
    $o = $s[$i++].$o;
}
 
echo $o;

请用递归实现一个阶乘求值算法 F(n): n=5;F(n)=5!=54321=120

function F($n){    
 if($n==0){         
 return 1;      
 }else{         
 return $n* F($n-1);      
 }
 }var_dump(F(5));

将字符长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

数组内置的排序方法有哪些?

sort($array); //数组升序排序
rsort($array); //数组降序排序
 
asort($array);  //根据值,以升序对关联数组进行排序
ksort($array);  //根据建,以升序对关联数组进行排序
 
arsort($array);   //根据值,以降序对关联数组进行排序
krsort($array);  // 根据键,以降序对关联数组进行排序

用PHP写出显示客户端IP与服务器IP的代码

$_SERVER["REMOTE_ADDR"]
$_SERVER["SERVER_ADDR"]

语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们?

require是无条件包含也就是如果一个流程里加入require,无论条件成立与否都会先执行require

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

包含文件不存在或者语法错误的时候require是致命的错误终止执行,include不是

可以用include_once,require_once代替。

session与cookie的区别

session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放
cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的。
两者都可通过时间来设置时间长短

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

//方法一
$a.=$b;
$b=str_replace($b,"",$a);
$a=str_replace($b,"",$a);
 
//方法二
list($b,$a)=array($a,$b);
var_dump($a,$b);

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

function get_extension($file){
   //方法一   
   return  substr(strrchr($file,'.'), 1);   
   //方法二   
   return  end(explode('.', $file));
   }echo  get_extension('fangzhigang.png'); //png

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

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

对于大流量的网站,你会采用什么方法来解决访问量?

(1)首先确认服务器硬件是否满足支持当前的流量;
(2)优化数据库的访问;
(3)禁止外部盗链;
(4)控制大文件下载;
(5)使用不同的主机分流;
(6)使用流量分析统计;

PHP 如何接口调用?

public function  authenticationApi($data,$url){       
 $ch  = curl_init();       
  curl_setopt($ch, CURLOPT_URL, $url);        
  curl_setopt($ch, CURLOPT_POST, 1);        
  curl_setopt($ch, CURLOPT_HEADER, 0);        
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);        
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);    
  //输出格式可以转为数组形式的json格式        
  $tmpInfo = curl_exec($ch);        
  curl_close($ch);        
  return $tmpInfo;    
  }

用PHP header()函数实现页面404错误提示功能

Header("HTTP/1.1 404 Not Found");

javascript 判断弹出窗口是否被屏蔽程序代码

var wroxWin =
 window.open("http://www.111cn.net", "_blank");if (wroxWin == null) {
    alert("糟糕!弹出窗口被屏蔽了");}

php序列化和反序列化用的函数

serialize() 序列化
unserialize() 反序列化

利用下表结构,写出发贴数最多的十个人名字的SQL语句

表名:members
字段:id,username,posts,pass,email

select memebers.username from members
group by posts desc limit 10

求两个日期的差数,例如2007-2-5 ~ 2007-3-6 的日期差数

// 方法一:用DateTime类
$day1 = '2003-09-16';
$day2 = '2011-11-23';
$d1 = new dateTime($day1);
$d2 = new dateTime($day2);
echo $d1->diff($d2)->days;
 
// 方法二,用时间戳计算
echo (strtotime($day2) - strtotime($day1))/(24*3600);

下面的代码用来做什么?请解释。

$date='08/26/2003';
print ereg_replace("([0-9]+)/([0-9]+)/([0-9]+)","\\2/\\1/\\3",$date);

这是把一个日期从 MM/DD/YYYY 的格式转为 DD/MM/YYYY 格式。我的一个好朋友告诉我可以把这个正规表达式拆解为以下的语句,对于如此简单的表示是来说其实无须拆解,纯粹为了解说的方便:

// 对应一个或更多 0-9,后面紧随一个斜号 r e g E x p r e s s i o n = " ( [ 0 ? 9 ] + ) / " ; / / 应 一 个 或 更 多 0 ? 9 , 后 面 紧 随 另 一 个 斜 号 regExpression = "([0-9]+)/"; // 应一个或更多 0-9,后面紧随另一个斜号 regExpression="([0?9]+)/";//0?9regExpression .= “([0-9]+)/”;
// 再次对应一个或更多 0-9$regExpression .= “([0-9]+)”;至于 \2/\1/\3 则是用来对应括号,第一个括号对的是月份

在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(?)中;而链接到当前页面的URL记录在预定义变量(?)中。

(1) echo $_SERVER['PHP_SELF']; 
(2) echo $_SERVER["HTTP_REFERER"];

##Composer是什么?Composer和PHP有什么关系?

Composer是PHP的一个依赖(dependency)管理工具,在我们的项目中声明所依赖的外部工具库(libraries),Composer 可以帮助我们安装这些依赖的库文件。Composer可以全局安装也可以局部安装,默认不是全局安装的,是基于指定项目的某个目录进行安装的。

团队协作怎么保证版本统一?

安装组件使用composer install 而不是composer update,
.lock文件加入版本控制当中。


  1. a-zA-Z0-9_- ??
  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-09 11:30:33  更:2021-09-09 11:33:30 
 
开发: 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年11日历 -2024/11/24 1:02:08-

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