1.用最优的方法判断两个字符串是否相等
function mystrcomp($str1,$str2){
if($str1 == $str2){
return TRUE;
}else{
return FALSE;
}
}
网友做了一个这样的测试:
0){
$i--;
if($a==$b) ;
}
$time2 = microtime(true);
while($j>0){
$j--;
if(strcmp($a,$b));
}
$time3 = microtime(true);
echo ($time2-$time1).'\n'; //运行结果 0.2440140247345
echo ($time3-$time2); //运行结果 0.76804399490356
?>
2.请用最优的方式获取当前文件的目录
$dir = dirname(__FILE__);
之后可以使用以下方式引入文件
define('ROOT', $dir);
require_once ROOT.'/config/conf_mysql.php';
3.请列举一些php的危险函数,并说明禁用方法
打开/etc/php.ini文件,查找到 disable_functions ,添加需禁用的函数名,如下:
phpinfo,eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen
函数的具体含义请参考这个网址:
http://mt.sohu.com/20160816/n464464648.shtml
4.请计算下面的值
++在前,则先加1
++在后,则后加1
$i=$j=0;
echo $i++; // 0
echo $i; // 1
echo "
";
echo ++$j; // 1
echo $j; // 1
5.实现一个定时30秒去执行一条sql语句
@1.使用代码执行
@2.使用存储过程执行
@3.使用电脑自带的计划任务执行sql语句
@4.其它工具
6.设计一种方案保证用户能永久登陆
主要思想是:在用户表里面新增一个cookie MD5码值和过期时间字段,把MD5码值与 MD5(用户名)关联存入客户端cookie中。
用户每次新访问系统,都刷新一次过期时间与MD5值,只要用户在规定的时间内使用系统都可以保证能验证成功。
参考网址:http://www.phpddt.com/manual/php-security/new_item46.htm
7.在数据表使用innodb引擎时,没有备份数据的情况下,怎么恢复最近的数据
主要的原理就是利用:在保证ibdata1数据文件,要恢复的数据库的表结构存在,Innodb引擎索引数据的原理来对数据空间文件的数据进行提取。
参考方法网址:http://bobao.360.cn/learning/detail/3316.html
8.多台服务器如何共享session
主要方案有:
1.cookie携带
2.通过算法实现用户每次当问都命中同一台服务器
3.存入公共数据库中(各种数据库)
4.建立session公共服务组建
详细介绍参考:http://www.cnblogs.com/wangtao_20/p/3395518.html
9.请写出以下语句的输出
$arr=[
'1'=>1,
1=>2
];
var_dump($arr);
//输出结果为:
{[1]=> int(2)}
分析原因:在数组操作中,数值型字符key,会被隐试转换为数值型。
10.请写出以下语句的输出
echo ‘2’.print (2)+3;
结果:521
分析:
1. print 不是一个函数,是一个执行表达式,后面可以跟一个表达式,所有会执行print (2)+3等价于print(2+3)打印输出5
2.同时print执行成功会返回1,结果为521
echo ('2'.print (2))+3;
结果:224
分析:
1.因为print被括号括起来了,提高了优先级和运算范围,先执行print(2)打印输出2
2.同时print执行成功返回1,‘2’.1+3为24,所有结果展示为224