绳锯木断,水滴石穿!
面试 > php面试题(一)

php面试题(一)

2020-11-06 分类:面试 作者:Agoni 阅读(754)

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

1
2
3
4
5
6
7
8
$_SERVER['REMOTE_ADDR']客户端IP
function getOnlineIP(){
        if (getenv('HTTP_CLIENT_IP')) return getenv('HTTP_CLIENT_IP');
        if (getenv('HTTP_X_FORWARDED_FOR')) return getenv('HTTP_X_FORWARDED_FOR');
        if ($_SERVER["REMOTE_ADDR"]) return $_SERVER["REMOTE_ADDR"];
        if (!empty($HTTP_SERVER_VARS['REMOTE_ADDR'])) return $HTTP_SERVER_VARS['REMOTE_ADDR'];
}
服务器IP:gethostbyname(“www.baidu.com”)

2. 打开php.ini中的Safe_mode,会影响哪些函数?至少说出6个。
答:1:用户输入输出函数(fopen() file() require(),只能用于调用这些函数有相同脚本的拥有者)
2:创建新文件(限制用户只在该用户拥有目录下创建文件)
3:用户调用popen() systen() exec()等脚本,只有脚本处在safe_mode_exec_dir配置指令指定的目录中才可能
4:加强HTTP认证,认证脚本拥有者的UID的划入认证领域范围内,此外启用安全模式下,不会设置PHP_AUTH
5:mysql服务器所用的用户名必须与调用mysql_connect()的文件的拥有者用户名相同
6:受影响的函数变量以及配置命令达到40个

3. 请写一个函数验证电子邮件的格式是否正确(要求使用正则)
答:preg_match('/^[\w\-\.]+@[\w\-]+(\.\w+)+$/', $email);

4. MySQL数据库,一天一万条以上的增量,怎么优化?
答:处理的方法之一是按月进行分表,因为是日志表,主要操作是insert操作,所以每月初自动生成新的数据表,数据插入到对应月份的那张数据表。[比如表明前缀是cdb_smslog 后面加200910 及时cdb_smslog_200910],其他优化方式暂时想不起来,对于myISAM, 考虑容量的话,也有优化的方案

5.写出一种排序算法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//冒泡排序
function maopao($arr) {
        $count = count($arr);
        for($i=0; $i<$count-1; ++$i) {
                for($j=0; $j<$count-$i-1; ++$j) {
                        if($arr[$j] > $arr[$j+1]) {
                                $temp = $arr[$j];
                                $arr[$j] = $arr[$j+1];
                                $arr[$j+1] = $temp;
                        }
                }
        }
        return $arr;
}

6.写个函数用来对二维数组排序
答:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function array_sort_by_any_row($array_name, $row_id, $order_type){
    $array_temp=array();
    foreach($array_name as $key=>$value){
        $array_temp[$key]=$value[$row_id];
    }
    if($order_type==="ASC"){ //顺序
        asort($array_temp);
    } else {
        arsort($array_temp);
    }
    $result_array=array();
    foreach($array_temp as $key=>$value){
        $result_array[$key]=$array_name[$key];
    }
    return $result_array;
}
$arr = array(
    array('num'=>5, 'value'=>6),
    array('num'=>2, 'value'=>39),
    array('num'=>36, 'value'=>29)
);
$sortarr = array_sort_by_any_row($arr, 'num', 'DESC');
print_r($sortarr);

7.写5个不同的自己的函数,来截取一个全路径的文件的扩展名,允许封装php库中已有的函数。
答:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
        $path = str_replace('\', '/',__FILE__);
    echo $path.'
<br />';
    function extname1($path) {
        return strrchr($path, '
.');
    }
   
    function extname2($path) {
        $position = strrpos($path, '
.');
        return substr($path, $position);
    }
   
    function extname3($path) {
        $arr = explode('
.', $path);
        return $arr[count($arr) - 1];
    }
   
    function extname4($path) {
        preg_match_all('
/[\w\/\:\-]+\.([\w]+)$/', $path, $out);
        return $out[1][0];
    }
   
    function extname5($path) {
        return preg_replace('
/^[^\.]+\.([\w]+)$/', '${1}', basename($path));
    }
   
    print_r(extname5($path));

8.约瑟夫环问题

「 有志者自有千计万计,无志者只感千难万难 」

赞(3) 打赏
3

谢谢,共同进步~

支付宝
微信

上一篇:

下一篇:

你可能感兴趣

0 条评论关于"php面试题(一)"

博客简介

loading......
姓名:张峰
性别:男
爱好:女
喜欢:旅游,煲剧,写书法,写博客,欢迎一起交流。。。。。。

精彩评论

友情链接

没有人陪你走一辈子,所以你要适应孤独,没有人会帮你一辈子,所以你要奋斗一生!申请交换友链

站点统计

  • 文章总数: 24 篇
  • 草稿数目: 0 篇
  • 分类数目: 10 个
  • 独立页面: 1 个
  • 评论总数: 21 条
  • 链接总数: 3 个
  • 标签总数: 26 个
  • 访问总量: 8074615 次
  • 最近更新: 2021年10月13日
服务热线:
 1995****175

 QQ在线交流

 旺旺在线