猴子选大王算法

2017 年 8 月 22 日 at 下午 3:10分类:PHP

猴子选大王
从1号猴子开始沿顺时针方向从1开始报数,报到n的猴子出局
再从刚出局猴子的下一个位置重新开始报数
如此重复
直至剩下一个猴子,它就是大王

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function monkeyKing($m, $n){
    $arr=range(1,$m);
    $i = 0;
    while(count($arr) > 1){
        if(($i+1)%$n == 0){
            unset($arr[$i]);
        }else{
            // 没有叫到n的放回数组
            array_push($arr, $arr[$i]);
            //删除本次循环的数字
            unset($arr[$i]);
        }
        $i++;
    }
    return reset($arr);
}
var_dump(monkeyKing(10,3));
exit;

php导出csv乱码问题解决

2017 年 8 月 7 日 at 下午 1:32分类:PHP

在用PHP导出CSV文件时,如果写入的数据是使用UTF-8编码
导出时候会出现乱码 两种办法
1.都转换成gbk输出(这样有个问题就是有的个别字转码会出现乱码)

2.直接utf8输出

header(‘Expires: 0′);
header(‘Cache-control: private’);
header(‘Cache-Control: must-revalidate, post-check=0, pre-check=0′);
header(‘Content-Description: File Transfer’);
header(‘Content-Encoding: UTF-8′);
header(‘Content-type: text/csv; charset=UTF-8′);
header(‘Content-Disposition: attachment; filename=测试.csv’);
echo “\xEF\xBB\xBF”;//输出BOM头

这样写就不会出现乱码的问题了。

auto_prepend_file与auto_append_file使用方法

2017 年 8 月 4 日 at 下午 4:16分类:PHP

php.ini中有两项
auto_prepend_file 在页面顶部加载文件
auto_append_file 在页面底部加载文件
例如:
auto_prepend_file = “/data/start.php”
auto_append_file = “/data/end.php”
修改后重启服务器,这样所有页面的顶部与底部都会require /data/start.php 与 /data/end.php

还有可以在服务上设置,这样不会影响别的项目
apache
php_value auto_prepend_file /data/start.php
php_value auto_append_file /data/end.php

nginx

fastcgi_param PHP_VALUE “auto_prepend_file=/data/start.php”;
fastcgi_param PHP_VALUE “auto_append_file=/data/end.php”;