我个人常用的一些方法
<?php
/****************************************数组 start**********************************************/
/**
* 二维数组去重
* @param $array
* @param $key
* @return array
*/
function unique_multidim_array($array, $key) {
$temp_array = array();
$i = 0;
$key_array = array();
foreach ($array as $val) {
if (!in_array($val[$key], $key_array)) {
$key_array[$i] = $val[$key];
$temp_array[$i] = $val;
}
$i++;
}
return $temp_array;
}
array_intersect_assoc(); //关联数组的交集
array_diff_assoc(); //关联数组的差集
/****************************************数组 end**********************************************/
/****************************************文件start**********************************************/
/**
* 功能:循环检测并创建文件夹
* 参数:$path 文件夹路径
* 返回:
*/
function createDir($path) {
if (!file_exists($path)) {
createDir(dirname($path));
mkdir($path, 0777);
}
}
/**
* 显示文件大小
*/
function ReadableFilesize($size) {
$mod = 1024;
$units = explode(' ', 'B KB MB GB TB PB');
for ($i = 0; $size > $mod; $i++) {
$size /= $mod;
}
return round($size, 2) . ' ' . $units[$i];
}
/**
* php的escape函数(编码)
* @param string $str 需要转换的字符串
* @return string
*/
function escape($string, $in_encoding = 'UTF-8', $out_encoding = 'UCS-2') {
$return = '';
if (function_exists('mb_get_info')) {
for ($x = 0; $x < mb_strlen($string, $in_encoding); $x++) {
$str = mb_substr($string, $x, 1, $in_encoding);
if (strlen($str) > 1) {
// 多字节字符
$return .= '%u' . strtoupper(bin2hex(mb_convert_encoding($str, $out_encoding, $in_encoding)));
} else {
$return .= '%' . strtoupper(bin2hex($str));
}
}
}
return $return;
}
/**
* 判断email地址是否合法
*
* @param string $email 邮件地址
* @return boolean 邮件地址是否合法
*/
function isEmail($email) {
return preg_match("/[_a-zA-Z\d\-\.]+@[_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-]+)+$/i", $email) !== 0;
}
function isMobile($mobile) {
if (!is_numeric($mobile)) {
return false;
}
return preg_match('#^13[\d]{9}$|^14[5,7]{1}\d{8}$|^15[^4]{1}\d{8}$|^17[0,3,6,7,8]{1}\d{8}$|^18[\d]{9}$#', $mobile) ? true : false;
}
/**
* 获取当前页面完整URL地址
*/
function getUrl() {
$sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://';
$php_self = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
$path_info = isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : '';
$relate_url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $php_self . (isset($_SERVER['QUERY_STRING']) ? '?' . $_SERVER['QUERY_STRING'] : $path_info);
return $sys_protocal . (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '') . $relate_url;
}
/**
* 获取当前页面完整URL地址
*/
function get_url() {
return getUrl();
}
/****************************************文件 end**********************************************/
/**
* 输出json
*
* @param array 或 string $param 需要输出的主题
* @param string $callback
*/
function echoJson($param, $callback) {
header('Content-type: application/json');
if ($param && is_array($param)) {
if ($callback) {
echo $callback . '(' . json_encode($param) . ')';
} else {
echo json_encode($param);
}
} else if ($param && is_string($param)) {
if ($callback) {
echo $callback . '(' . $param . ')';
} else {
echo $param;
}
}
}
/**
* php的escape函数
* @param string $str 需要转换的字符串
* @return string
*/
function escape($string, $in_encoding = 'UTF-8', $out_encoding = 'UCS-2') {
$return = '';
if (function_exists('mb_get_info')) {
for ($x = 0; $x < mb_strlen($string, $in_encoding); $x++) {
$str = mb_substr($string, $x, 1, $in_encoding);
if (strlen($str) > 1) {
// 多字节字符
$return .= '%u' . strtoupper(bin2hex(mb_convert_encoding($str, $out_encoding, $in_encoding)));
} else {
$return .= '%' . strtoupper(bin2hex($str));
}
}
}
return $return;
}