用PHP实现复杂功能的10个函数
发布时间:2023-07-02 23:36:36
1. 验证电子邮件地址的有效性
function validateEmail($email) {
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
return false;
}
list($username, $domain) = explode('@', $email);
if (!checkdnsrr($domain, 'MX')) {
return false;
}
return true;
}
2. 生成 标识符
function generateUniqueId() {
return md5(uniqid(mt_rand(), true));
}
3. 获取客户端IP地址
function getClientIp() {
$ip = '';
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
4. 生成随机字符串
function generateRandomString($length = 10) {
$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, strlen($characters) - 1)];
}
return $randomString;
}
5. 检查字符串是否是有效的URL
function isUrl($url) {
return (bool) filter_var($url, FILTER_VALIDATE_URL);
}
6. 获取当前日期和时间
function getCurrentDateTime() {
return date('Y-m-d H:i:s');
}
7. 将多维数组展开为一维数组
function flattenArray($array) {
$result = [];
array_walk_recursive($array, function($value) use (&$result) {
$result[] = $value;
});
return $result;
}
8. 对数组进行随机排序
function randomSort($array) {
shuffle($array);
return $array;
}
9. 计算两个日期之间的天数差
function daysBetweenDates($date1, $date2) {
$datetime1 = new DateTime($date1);
$datetime2 = new DateTime($date2);
$interval = $datetime1->diff($datetime2);
return $interval->days;
}
10. 编码/解码字符串为Base64
function encodeBase64($string) {
return base64_encode($string);
}
function decodeBase64($string) {
return base64_decode($string);
}
这些函数可以帮助实现一些常见但复杂的功能,如验证电子邮件地址的有效性、生成 标识符、获取客户端IP地址、生成随机字符串、检查字符串是否是有效的URL、获取当前日期和时间、将多维数组展开为一维数组、对数组进行随机排序、计算两个日期之间的天数差以及编码/解码字符串为Base64。
