2020最新PHP面试100题(二)

35、说说你对SVN的了解?优缺点?

SVN是一种版本控制器,程序员开发的代码递交到版本服务器进行集中管理。

SVN的优点:代码进行集中管理,版本控制容易,操作比较简单,权限控制方便。

缺点:不能随意修改服务器项目文件夹。

点击加入我的企鹅群

36、怎么找到PHP.ini的路径?

一般都在php的安装目录下,或者window系统的windows目录下。

37、PHP加速模式/扩展? PHP调试模式/工具?

Zend Optimizer加速扩展

调试工具:xdebug

38、你常用到的mysql命令?

Show databases
Show tables
Insert into 表名() values()
Update 表名 set 字段=值 where ...
Delete from 表名 where ...
Select * from 表名 where 条件 order by ... Desc/asc limit ... Group by ... Having ...

39、进入mysql管理命令行的命令?

Mysql -uroot -p 回车 密码

40、show databases; 这个命令的作用?

显示当前mysql服务器中有哪些数据库

41、show create database mysql; 这个命令的作用?

显示创建数据库的sql语句

42、show create table user; 这个命令的作用?

显示创建表的sql语句

43、desc user; 这个命令的作用?

查询user表的结构

44、explain select * from user; 这个命令的作用?

获取select相关信息

45、show processlist; 这个命令的作用?

显示哪些线程正在运行

46、SHOW VARIABLES; 这个命令的作用?

显示系统变量和值

47、SHOW VARIABLES like ’%conn%’; 这个命令的作用?

显示系统变量名包含conn的值

48、LEFT JOIN 写一个SQL语句?

SELECT A.id,A.class FROM A LEFT JOIN B ON A.cid=B.id

49、in, not ni, exist, not exist的作用和区别?

  • in在什么中

  • Not in 不在什么中

  • Exists 存在

  • Not exists 不存在

50、怎么找到数据库的配置文件路径?

在数据库安装目录下,my.ini

51、简述Linux下安装PHP的过程?

安装软件之前先安装编译工具gcc、gcc-c++

拷贝源码包,解包解压缩

Cd /lamp/php进入php目录

./configure –prefix=/usr/local/php –with-config-file-path=/usr/local/php/etc指定安装目录和配置文件目录

Make 编译

Make install安装

52、简述Linux下安装Mysql的过程?

Groupadd mysql 添加一个用户组mysql

Useradd -g mysql mysql 添加一个mysql用户指定分组为mysql

Cd /lamp/mysql 进入mysql目录

./configure –prefix=/usr/local/mysql/ –with-extra-charsets=all

Make

Make all

53、简述Linux下安装apache的过程?

Cd /lamp/httpd 进去apache软件目录

./configure –prefix=/usr/local/apache2/ –sysconfdir=/etc/httpd/ –with-included-apr

Make

Make all

HTML/CSS/DIV/Javascritp:

54、设计一个页面(4个 div 第一个div 宽960px 居中;第2-4个div 3等分960px;)

在这里插入图片描述

55、用javascript取得一个input的值?取得一个input的属性?

document.getElementById(‘name’).value;
document.getElementById(‘name’).type;

56、用Jquery取得一个input的值?取得一个input的属性?

$(“input[name='aa']).val();
$(“input[name='aa']).attr(‘type’);

57、请您写一段ajax提交的js代码,或者写出ajax提交的过程逻辑。

var xmlhttp;
if(window.XMLHttpRquest){
    
    
xmlhttp=new XMLHttpRequest();
}else if(window.ActiveXObject){
    
    
xmlhttp=new ActiveXObject(‘Microsoft.XMLHTTP);
}
xmlhttp.open(GET,1.php?aa=name’,true);
xmlhttp.onreadystatechange=function(){
    
    
if(xmlhttp.readyState==4){
    
    
if(xmlhttp.status==200){
    
    
var text=xmlhttp.responseText;
}
}
}
xmlhttp.send(null);

58、简述Cookie的设置及获取过程

设置COOKIE的值:

Setcookie(名称,值,保存时间,有效域);

获取值:$_COOKIE[‘名称’];

59、面向对象中接口和抽象类的区别及应用场景?

  • 有抽象方法的类叫做抽象类,抽象类中不一定只有抽象方法,抽象方法必须使用abstract关键字定义。

  • 接口中全部是抽象方法,方法不用使用abstract定义。

  • 当多个同类的类要设计一个上层,通常设计为抽象类,当多个异构的类要设计一个上层,通常设计为接口。

用面向对象来实现A对象继承B和C对象

Interface B{
    
     ... }
Interface C{
    
     ... }
Class A implements B,C{
    
     ... }

60、写出Smarty模板引擎中你最常用的关键词

Assign Display Foreach
Section Loop Item
$smarty Now Const get

61、l 增加一个字段性别sex,写出修改语句

Alert table user add sex enum(0,1);

62、查询出年龄介于20岁到30岁之间的用户

Select * from user where age>20 and age<30

63、如果是一个Web频繁访问的查询,上题的查询如何优化?

可对where后面的字段 age 建立索引,也可对语句建立存储过程。

64、echo(),print(),print_r()的区别?

  • Echo,print是PHP语句, print_r是函数,

  • Print()只能打印出简单类型变量的值(如int,string),有返回值。

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

  • echo 输出一个或者多个字符串,无返回值

65、什么是模板技术、能够使HTML和PHP分离开使用的模板?

模板技术就是使程序的逻辑代码和界面分开的技术。

能够使HTML和PHP分开的模板有:Smarty、Template、PHPlib Template、FastTemplate

66、对于大流量的网站,您采用什么样的方法来解决访问量问题?

优化程序,优化数据库,如果程序和数据库已经最优化,使用以下解决方法:

  • 确定当前服务器设备是否满足流量需求。

  • 使用Memcache缓存技术,把动态内容缓存到文件中,动态网页直接调用这些文件,而不必再访问数据库。

  • 禁止外部盗链,图片和文件外部盗链会给服务器带来大量的负载压力,可以通过refer来禁止外部盗链,或者使用apache来配置禁止盗链。

  • 控制大文件的下载,大文件的下载对于非SCSI硬盘来说会占用大量的资源,导致服务器的响应能力下降。

  • 使用不同的主机分流主要流量,使服务器均衡负载。

  • 使用流量统计软件统计分析网站流量,可以知道哪些地方耗费了大量的流量,哪些页面需要再进行优化。

67、mysql_fetch_row() 和mysql_fetch_array之间有什么区别?

Mysql_fetch_row()是从结果集中取出一行作为枚举数组,mysql_fetch_array()是从结果集中取出一行作为索引数组或关联数组或两种方式都有。

68、实现中文字串截取无乱码的方法

Mb_substr();

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

获取客户端IP:$_SERVER(“REMOTE_ADDR”);

获取服务器端IP:$_SERVER[“SERVER_ADDR”];

70、有一个网页地址, 比如PHP开发资源网主页: http://www.phpres.com/index.html,如何得到它的内容?

获取网页内容:

$url=”http://www.phpres.com/index.html“;
$str=file_get_contents($url);$ch=curl_init();
 curl_setopt($ch,CURLOPT_URL,’’);
 curl_setopt($ch,CURLOPT_HEADER,0);
 curl_exec($ch);
 curl_close($ch);

71、请写一个函数验证电子邮件的格式是否正确

function checkemail($email){
    
    
echo preg_match(/^[0-9a-zA-Z-]+@[0-9a-zA-Z-]+\.[0-9a-zA-Z]+$/,$email)?’email格式正确‘:’email格式不正确‘;
}

72、简述如何得到当前执行脚本路径,包括所得到参数

S E R V E R [ ′ S C R I P T F I L E N A M E ′ ] . _SERVER['SCRIPT_FILENAME']. SERVER[SCRIPTFILENAME]._SERVER[‘REQUEST_URI’];取得当前页面的完整路径和参数。

取得参数:$_SERVER[‘QUERY_STRING’];

73、JS表单弹出对话框函数是?获得输入焦点函数是?

Alert(); focus();

74、写一个函数,算出两个文件的相对路径

如 $a = ’/a/b/c/d/e.php’;

$b = ’/a/b/12/34/c.php’;

计算出 $b 相对于 $a 的相对路径应该是 http://www.cnblogs.com/c/d将()添上

$a=”http://www.cnblogs.com/a/b/c/d/e.php”;
$b=”http://www.cnblogs.com/a/b/12/34/c.php”;
$ainfo=parse_url($a);
$binfo=parse_url($b);
  
$apath=ltrim($ainfo['path'],'/');
$bpath=ltrim($binfo['path'],'/');
  
$arr=explode('/',$apath);
$brr=explode('/',$bpath);
$flag=false;
for($i=0;$i
 if($arr[$i]!==$brr[$i]){
    
    
  $ab[$i]='..';
  if(!$flag){
    
    
   for($j=$i;$j
    $bb[]=$brr[$j];
   }
   $flag=true;
  }
 }
}
$cha=array_merge($ab,$bb);
$cha=implode('/',$cha);
print_r($cha);

75、写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。

function my_scandir($dir){
    
    
     $files = array();
     if ( $handle = opendir($dir) ){
    
    
         while ( ($file = readdir($handle)) !== false ) {
    
    
             if ( $file != ".." && $file != "." ) {
    
    
             if ( is_dir($dir . "/" . $file) ) {
    
    
                     $files[$file] = scandir($dir . "/" . $file);
                 }else {
    
    
                     $files[] = $file;
                 }
             }
         }
         closedir($handle);
         return $files;
     }
}

76、数据库索引有几类,分别是什么?什么时候该用索引?

普通索引、主键索引、唯一索引

并非所有的数据库都以相同的方式使用索引,作为通用规则,只有当经常查询列中的数据时才需要在表上创建索引。

点关注,不迷路

好了各位,以上就是这篇文章的全部内容了,能看到这里的人呀,都是人才。之前说过,PHP方面的技术点很多,也是因为太多了,实在是写不过来,写过来了大家也不会看的太多,所以我这里把它整理成了PDF和文档,如果有需要的可以

点击进入暗号: PHP+「平台」

在这里插入图片描述

在这里插入图片描述


更多学习内容可以访问【对标大厂】精品PHP架构师教程目录大全,只要你能看完保证薪资上升一个台阶(持续更新)

以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的 PHP技术交流群

猜你喜欢

转载自blog.csdn.net/weixin_49163826/article/details/108954912