2020最新PHP面试100题(二)

    科技2024-10-31  14

    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技术交流群

    Processed: 0.029, SQL: 8