常用的处理方法
代码如下
.
<?php /** * @param $arr * @param $key_name * @return array * 指定数据库中发现的列表 id 作为数组的键名 */ function convert_arr_key($arr, $key_name) {
$arr2 = array(); foreach($arr as $key => $val){
$arr2[$val[$key_name]] = $val; } return $arr2; } function encrypt($str){
return md5(C("AUTH_CODE").$str); } /** * 在数组中获取一列 * @param array $arr 数组 * @param string $key_name 列名 * @return array 返回那一列的数组 */ function get_arr_column($arr, $key_name) {
$arr2 = array(); foreach($arr as $key => $val){
$arr2[] = $val[$key_name]; } return $arr2; } /** * 获取url 每个参数 类似于 pay_code=alipay&bank_code=ICBC-DEBIT * @param type $str * @return type */ function parse_url_param($str){
$data = array(); $str = explode('?',$str); $str = end($str); $parameter = explode('&',$str); foreach($parameter as $val){
$tmp = explode('=',$val); $data[$tmp[0]] = $tmp[1]; } return $data; } /** * 二维数组排序 * @param $arr * @param $keys * @param string $type * @return array */ function array_sort($arr, $keys, $type = 'desc') {
$key_value = $new_array = array(); foreach ($arr as $k => $v) {
$key_value[$k] = $v[$keys]; } if ($type == 'asc') {
asort($key_value); } else {
arsort($key_value); } reset($key_value); foreach ($key_value as $k => $v) {
$new_array[$k] = $arr[$k]; } return $new_array; } /** * 多维数组转化为一维数组 * @param 多维数组 * @return array 一维数组 */ function array_multi2single($array) {
static $result_array = array(); foreach ($array as $value) {
if (is_array($value)) {
array_multi2single($value); } else $result_array [] = $value; } return $result_array; } /** * 友好时间显示 * @param $time * @return bool|string */ function friend_date($time) {
if (!$time) return false; $fdate = ''; $d = time() - intval($time); $ld = $time - mktime(0, 0, 0, 0, 0, date('Y')); //得出年 $md = $time - mktime(0, 0, 0, date('m'), 0, date('Y')); //得出月 $byd = $time - mktime(0, 0, 0, date('m'), date('d') - 2, date('Y')); //前天 $yd = $time - mktime(0, 0, 0, date('m'), date('d') - 1, date('Y')); //昨天 $dd = $time - mktime(0, 0, 0, date('m'), date('d'), date('Y')); //今天 $td = $time - mktime(0, 0, 0, date('m'), date('d') + 1, date('Y')); //明天 $atd = $time - mktime(0, 0, 0, date('m'), date('d') + 2, date('Y')); //后天 if ($d == 0) {
$fdate = '刚刚'; } else {
switch ($d) {
case $d < $atd: $fdate = date('Y年m月d日', $time); break; case $d < $td: $fdate = '后天' . date('H:i', $time); break; case $d < 0: $fdate = '明天' . date('H:i', $time); break; case $d < 60: $fdate = $d . '秒前'; break; case $d < 3600: $fdate = floor($d / 60) . '分钟前'; break; case $d < $dd: $fdate = floor($d / 3600) . '小时前'; break; case $d < $yd: $fdate = '昨天' . date('H:i', $time); break; case $d < $byd: $fdate = '前天' . date('H:i', $time); break; case $d < $md: $fdate = date('m月d日 H:i', $time); break; case $d < $ld: $fdate = date('m月d日', $time); break; default: $fdate = date('Y年m月d日', $time); break; } } return $fdate; } /** * 返回状态和信息 * @param $status * @param $info * @return array */ function arrayRes($status, $info, $url = "") {
return array("status" => $status, "info" => $info, "url" => $url); } /** * @param $arr * @param $key_name * @param $key_name2 * @return array * 将数据库中查出的列表以指定的 id 作为数组的键名 数组指定列为元素 的一个数组 */ function get_id_val($arr, $key_name,$key_name2) {
$arr2 = array(); foreach($arr as $key => $val){
$arr2[$val[$key_name]] = $val[$key_name2]; } return $arr2; } // 服务器端IP function serverIP(){
return gethostbyname($_SERVER["SERVER_NAME"]); } /** * 自定义函数递归的复制带有多级子目录的目录 * 递归复制文件夹 * @param type $src 原目录 * @param type $dst 复制到的目录 */ //参数说明: //自定义函数递归的复制带有多级子目录的目录 function recurse_copy($src, $dst) {
$now = time(); $dir = opendir($src); @mkdir($dst); while (false !== $file = readdir($dir)) {
if (($file != '.') && ($file != '..')) {
if (is_dir($src . '/' . $file)) {
recurse_copy($src . '/' . $file, $dst . '/' . $file); } else {
if (file_exists($dst . DIRECTORY_SEPARATOR . $file)) {
if (!is_writeable($dst . DIRECTORY_SEPARATOR . $file)) {
exit($dst . DIRECTORY_SEPARATOR . $file . '不可写'); } @unlink($dst . DIRECTORY_SEPARATOR . $file); } if (file_exists($dst . DIRECTORY_SEPARATOR . $file)) {
@unlink($dst . DIRECTORY_SEPARATOR . $file); } $copyrt = copy($src . DIRECTORY_SEPARATOR . $file, $dst . DIRECTORY_SEPARATOR . $file); if (!$copyrt) {
echo 'copy ' . $dst . DIRECTORY_SEPARATOR . $file . ' failed<br>'; } } } } closedir($dir); } // 递归删除文件夹 function delFile($path,$delDir = FALSE) {
if(!is_dir($path)) return FALSE; $handle = @opendir($path); if ($handle) {
while (false !== ( $item = readdir($handle) )) {
if ($item != "." && $item != "..") is_dir("$path/$item") ? delFile("$path/$item", $delDir) : unlink("$path/$item"); } closedir($handle); if ($delDir) return rmdir($path); }else {
if (file_exists($path)) {
return unlink($path); } else {
return FALSE; } } } /** * 多个数组的笛卡尔积 * * @param unknown_type $data */ function combineDika() {
$data = func_get_args(); $data = current($data); $cnt = count($data); $result = array(); $arr1 = array_shift($data); foreach($arr1 as $key=>$item) {
$result[] = array($item); } foreach($data as $key=>$item) {
$result = combineArray($result,$item); } return $result; } /** * 两个数组的笛卡尔积 * @param unknown_type $arr1 * @param unknown_type $arr2 */ function combineArray($arr1,$arr2) {
$result = array(); foreach ($arr1 as $item1) {
foreach ($arr2 as $item2) {
$temp = $item1; $temp[] = $item2; $result[] = $temp; } } return $result; } /** * 将二维数组以元素的某个值作为键 并归类数组 * array( array('name'=>'aa','type'=>'pay'), array('name'=>'cc','type'=>'pay') ) * array('pay'=>array( array('name'=>'aa','type'=>'pay') , array('name'=>'cc','type'=>'pay') )) * @param $arr 数组 * @param $key 分组值的key * @return array */ function group_same_key($arr,$key){
$new_arr = array(); foreach($arr as $k=>$v ){
$new_arr[$v[$key]][] = $v; } return $new_arr; } /** * 获取随机字符串 * @param int $randLength 长度 * @param int $addtime 是否加入当前时间戳 * @param int $includenumber 是否包含数字 * @return string */ function get_rand_str($randLength=6,$addtime=1,$includenumber=0){
if ($includenumber){
$chars='abcdefghijklmnopqrstuvwxyzABCDEFGHJKLMNPQEST123456789'; }else {
$chars='abcdefghijklmnopqrstuvwxyz'; } $len=strlen($chars); $randStr=''; for ($i=0;$i<$randLength;$i++){
$randStr.=$chars[rand(0,$len-1)]; } $tokenvalue=$randStr; if ($addtime){
$tokenvalue=$randStr.time(); } return $tokenvalue; } /** * CURL请求 * @param $url string 请求url地址 * @param $method string 请求方法 get post * @param mixed $postfields post数据数组 * @param array $headers 请求header信息 * @param bool|false $debug 调试开启 默认false * @return mixed */ function httpRequest($url, $method="GET", $postfields = null, $headers = array(), $debug = false) {
$method = strtoupper($method); $ci = curl_init(); /* Curl settings */ curl_setopt($ci,
标签: v锥多参变送器