程序员找工作必备 PHP 基础面试题 - 第十二天

“PHP 学习网” 公众号会每天分享一些面试题,正在找工作的小伙伴们可以来看看哦。

一、设 $day1,$day2 为 yyyy-mm-dd 格式的日期#

使用 mktime () 制造出时间戳,再使用 date () 显示为 yyyy-mm-dd 格式的日期

二、请写出 php -l、php -m、php -r 的作用。#

php –l:检测PHP的语法
php –r:直接运行PHP代码
php –m:将打印出内置以及已加载的PHP及zend模块

三、写出你熟知的能够使 HTML 和 PHP 分离开使用的模板,并简述其工作原理#

Smarty

tpl 模板文件由 php 官方开发的 smarty 模板语言编写。 tpl 文件第一次被 hbcms 系统调用后,将自动编译,并生成 php 文件,存储在 template/system/compile 目录里。 以后再次调用 tpl 文件,smarty 系统会自动判断 tpl 文件是否被修改过,如果没有被修改,就不再重复编译,而是直接读取上一次编译好的 php 文件。

四、如何取得某个程序中,第 n 行到第 m 行之间的程序片段 的执行时间#

$start=microtime(true);
程序片段
$end=microtime(true);
echo ($end-$start);

五、如何 实现字符串翻转?#

1、自带函数 strrev ()
2、

$str = "abcdefg";
function strrevv($str){
$len=strlen($str);
$newstr = '';
for($i=$len;$i>=0;$i--){
$newstr .= $str[$i];
}
return $newstr;
}
$showstr = strrevv($str);
echo $showstr."<br>";

六。说明以下代表的含义: LINE FILE $SERVER[“REMOTE_ADDR”] $SERVER[“PHP_SELF”]#

LINE: 当前文件的行数
FILE: 返回文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名
$SERVER [“REMOTE_ADDR”]: 正在浏览当前页面用户的 IP 地址。
$SERVER [“PHP_SELF”]: 当前正在执行脚本的文件名

七、如何提高数据库访问速度?依据是什么?#

1. 表设计一定要优化,冗余数据最少,少用连接查询。如果在实际应用中,使用了极其复杂的连接,子查询,则数据表的设计得要重新考虑了。

2. 尽量用 char 而不是 varchar,因为固定长度得 string 用起来更快。在当今硬盘容量越来越大的情况下,牺牲点存储空间而换得查询速度得提升是值得的。

3. 通过简化权限来提高查询速度。如果一个查询之前要执行很多权限验证,则查询速度会慢下来,不妨试着在 mysql 中用 root 登录与用你新建的有权限控制的用户登录的速度,就可以看出来了,root 登录,一下子就进入了,而普通用户登录,总会延迟一下。

4. 表的优化。如果一个表已经用了一段时间,随着更新和删除操作的发生,数据将会变得支离破碎,这样同样会增加在该表中进行物理搜索所花费的时间。你要知道的是,在 mysql 底层设计中,数据库将被映射到具有某种文件结构的目录中,而表则映射到文件。所以磁盘碎片是很有可能发生的。庆幸的是,在 mysql 中,我们可以通过下面的语句进行修复:

八、假设您有数据库(dbname=TEST_DB)足够的权限,请为 192.168.1.100 服务器上的 testuser 用户开放访问该数据库的所有权限并为其设置访问密码。#

grant all on TEST_DB.* to testuser@192.168.1.100 identified by "123";

九、什么情况下需要备份数据库?如何备份数据库?#

保存数据的完整性,防止数据丢失,病毒感染
1、直接拷贝数据库文件
2、使用命令mysqldump
3、使用工具进行备份

十、假设现在 mysql 服务器查询较慢,如何查找引起缓慢原因的具体查询语句?如何终止该语句的执行?#

用 microtime 查每句 sql 语句的执行时间比较长的
用 EXPLAIN 语句 来分析一下 select 语句的运行效果,例如 explain 可以获得 select 语句
使用的索引情况、排序的情况等等。
终止语句执行可以查出正在运行的进程,然后 kill 掉就可以了。
SHOW PROCESSLIST;
KILL 查出来的 Id;

最后各位可以扫下方二维码关注我公众号,目前我正在更新基础面试题,之后会更新中高级、redis、liunx 面试题

本作品采用《CC 协议》,转载必须注明作者和本文链接
和 PHP 学习网一起努力学习