程序员面试必备PHP基础面试题 – 第十二天

2020年3月20日 飞飞 阅读(408)

一、设$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;

未经允许不得转载:PHP学习网 » 程序员面试必备PHP基础面试题 – 第十二天
分享到:

评论抢沙发

要发表评论,您必须先

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

扫码关注微信公众号

扫描关注微信公众号