欢迎访问宙启技术站
智能推送

用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。