自动加载类
1 | // 首先,定义你的自动载入的函数 |
验证邮件地址
1 | filter_var('sgamgee@example.com', FILTER_VALIDATE_EMAIL); |
净化 HTML 输入和输出
1 | // Oh no! The user has submitted malicious HTML, and we have to display it in our web app! |
检测一个值是否为 null 或 false
1 |
|
生成唯一订单号
1 | /** |
5行vs9行 不用递归实现无限分类数据的树形格式化
1 |
|
解决中文用base64_decode解密的时候,出现乱码
- 利用PHP函数设置页面的头文件编码
1 | header("Content-Type:text/html;charset=utf-8"); |
- 有一些中文字符,用GET形式传过来的时候,+号会被替换成空格.
1 | $key = base64_decode(str_replace(" ","+",$_GET['key'])); |
缓冲区刷新
1 | function flush_buffers() |
简单的页面缓存
如果你的项目不是基于 CMS 系统或框架,打造一个简单的缓存系统将会非常实在。下面的代码很简单,但是对小网站而言能切切实实解决问题
1 |
|
在 PHP 中计算距离
这是一个非常有用的距离计算函数,利用纬度和经度计算从 A 地点到 B地点的距离。该函数可以返回英里,公里,海里三种单位类型的距离。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19function distance($lat1, $lon1, $lat2, $lon2, $unit) {
$theta = $lon1 - $lon2;
$dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
$dist = acos($dist);
$dist = rad2deg($dist);
$miles = $dist * 60 * 1.1515;
$unit = strtoupper($unit);
if ($unit == "K") {
return ($miles * 1.609344);
} else if ($unit == "N") {
return ($miles * 0.8684);
} else {
return $miles;
}
}
//使用方法:
echo distance(32.9697, -96.80322, 29.46786, -98.53506, "k")." kilometers";
将秒数转换为时间(年、月、日、小时…)
这个有用的函数能将秒数表示的事件转换为年、月、日、小时等时间格式。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
27
28function Sec2Time($time){
if(is_numeric($time)){
$value = array(
"years" => 0, "days" => 0, "hours" => 0,
"minutes" => 0, "seconds" => 0,
);
if($time >= 31556926){
$value["years"] = floor($time/31556926);
$time = ($time%31556926);
}
if($time >= 86400){
$value["days"] = floor($time/86400);
$time = ($time%86400);
}
if($time >= 3600){
$value["hours"] = floor($time/3600);
$time = ($time%3600);
}
if($time >= 60){
$value["minutes"] = floor($time/60);
$time = ($time%60);
}
$value["seconds"] = floor($time);
return (array) $value;
}else{
return (bool) FALSE;
}
}
强制下载文件
一些诸如 mp3 类型的文件,通常会在客户端浏览器中直接被播放或使用。如果你希望它们强制被下载,也没问题。可以使用以下代码:1
2
3
4
5
6
7
8
9
10
11
12
13
14function downloadFile($file){
$file_name = $file;
$mime = 'application/force-download';
header('Pragma: public'); // required
header('Expires: 0'); // no cache
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Cache-Control: private',false);
header('Content-Type: '.$mime);
header('Content-Disposition: attachment; filename="'.basename($file_name).'"');
header('Content-Transfer-Encoding: binary');
header('Connection: close');
readfile($file_name); // push it out
exit();
}
PHP加密解密
PHP加密和解密函数可以用来加密一些有用的字符串存放在数据库里,并且通过可逆解密字符串,该函数使用了base64和MD5加密和解密。1
2
3
4
5
6
7
8
9function encryptDecrypt($key, $string, $decrypt){
if($decrypt){
$decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($string), MCRYPT_MODE_CBC, md5(md5($key))), "12");
return $decrypted;
}else{
$encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));
return $encrypted;
}
}
PHP获取文件大小并格式化
1 | function formatSize($size) { |
PHP获取当前页面URL
1 | function curPageURL() { |
PHP强制下载文件
1 | function download($filename){ |
PHP截取字符串长度
我们经常会遇到需要截取字符串(含中文汉字)长度的情况,比如标题显示不能超过多少字符,超出的长度用…表示,以下函数可以满足你的需求。
1 | /* |
PHP获取客户端真实IP
1 | //获取用户真实IP |
PHP防止SQL注入
1 | function injCheck($sql_str) { |
PHP页面提示与跳转
1 | function message($msgTitle,$message,$jumpUrl){ |
PHP计算时长
1 | function changeTimeType($seconds) { |
PHP打印数组
1 | function cf_dd(){ |
遍历删除目录和目录下所有文件
1 | function cf_del_dir($dir){ |