当前位置: 首页>>代码示例>>PHP>>正文


PHP nv_check_valid_login函数代码示例

本文整理汇总了PHP中nv_check_valid_login函数的典型用法代码示例。如果您正苦于以下问题:PHP nv_check_valid_login函数的具体用法?PHP nv_check_valid_login怎么用?PHP nv_check_valid_login使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了nv_check_valid_login函数的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: nv_check_username_reg

/**
 * nv_check_username_reg()
 * Ham kiem tra ten dang nhap kha dung
 *
 * @param mixed $login
 * @return
 */
function nv_check_username_reg($login)
{
    global $db, $db_config, $lang_module;
    $error = nv_check_valid_login($login, NV_UNICKMAX, NV_UNICKMIN);
    if ($error != '') {
        return preg_replace('/\\&(l|r)dquo\\;/', '', strip_tags($error));
    }
    if ("'" . $login . "'" != $db->quote($login)) {
        return sprintf($lang_module['account_deny_name'], $login);
    }
    $sql = "SELECT content FROM " . NV_USERS_GLOBALTABLE . "_config WHERE config='deny_name'";
    $result = $db->query($sql);
    $deny_name = $result->fetchColumn();
    $result->closeCursor();
    if (!empty($deny_name) and preg_match('/' . $deny_name . '/i', $login)) {
        return sprintf($lang_module['account_deny_name'], $login);
    }
    $stmt = $db->prepare('SELECT userid FROM ' . NV_USERS_GLOBALTABLE . ' WHERE md5username= :md5username');
    $stmt->bindValue(':md5username', nv_md5safe($login), PDO::PARAM_STR);
    $stmt->execute();
    if ($stmt->fetchColumn()) {
        return sprintf($lang_module['account_registered_name'], $login);
    }
    $stmt = $db->prepare('SELECT userid FROM ' . NV_USERS_GLOBALTABLE . '_reg WHERE md5username= :md5username');
    $stmt->bindValue(':md5username', nv_md5safe($login), PDO::PARAM_STR);
    $stmt->execute();
    if ($stmt->fetchColumn()) {
        return sprintf($lang_module['account_registered_name'], $login);
    }
    return '';
}
开发者ID:NukeVietCMS,项目名称:CodeWeb,代码行数:38,代码来源:register.php

示例2: nv_check_username_change

/**
 * nv_check_username_change()
 *
 * @param mixed $login
 * @return
 */
function nv_check_username_change($login)
{
    global $db, $lang_module, $user_info, $db_config;
    $error = nv_check_valid_login($login, NV_UNICKMAX, NV_UNICKMIN);
    if ($error != '') {
        return preg_replace('/\\&(l|r)dquo\\;/', '', strip_tags($error));
    }
    if ("'" . $login . "'" != $db->quote($login)) {
        return sprintf($lang_module['account_deny_name'], $login);
    }
    $sql = "SELECT content FROM " . NV_USERS_GLOBALTABLE . "_config WHERE config='deny_name'";
    $result = $db->query($sql);
    $deny_name = $result->fetchColumn();
    $result->closeCursor();
    if (!empty($deny_name) and preg_match('/' . $deny_name . '/i', $login)) {
        return sprintf($lang_module['account_deny_name'], $login);
    }
    $sql = "SELECT userid FROM " . NV_USERS_GLOBALTABLE . " WHERE userid!=" . $user_info['userid'] . " AND md5username='" . nv_md5safe($login) . "'";
    if ($db->query($sql)->fetchColumn()) {
        return sprintf($lang_module['account_registered_name'], $login);
    }
    $sql = "SELECT userid FROM " . NV_USERS_GLOBALTABLE . "_reg WHERE userid!=" . $user_info['userid'] . " AND md5username='" . nv_md5safe($login) . "'";
    if ($db->query($sql)->fetchColumn()) {
        return sprintf($lang_module['account_registered_name'], $login);
    }
    return '';
}
开发者ID:nukeplus,项目名称:nuke,代码行数:33,代码来源:editinfo.php

示例3: nv_check_username_change

function nv_check_username_change($login)
{
    global $db, $lang_module, $user_info;
    $error = nv_check_valid_login($login, NV_UNICKMAX, NV_UNICKMIN);
    if ($login != $db->fixdb($login)) {
        return sprintf($lang_module['account_deny_name'], '<strong>' . $login . '</strong>');
    }
    if ($error != "") {
        return $error;
    }
    $sql = "SELECT `content` FROM `" . NV_USERS_GLOBALTABLE . "_config` WHERE `config`='deny_name'";
    $result = $db->sql_query($sql);
    list($deny_name) = $db->sql_fetchrow($result);
    $db->sql_freeresult();
    if (!empty($deny_name) and preg_match("/" . $deny_name . "/i", $login)) {
        return sprintf($lang_module['account_deny_name'], '<strong>' . $login . '</strong>');
    }
    $sql = "SELECT `userid` FROM `" . NV_USERS_GLOBALTABLE . "` WHERE `userid`!=" . $user_info['userid'] . " AND `username`=" . $db->dbescape($login);
    if ($db->sql_numrows($db->sql_query($sql)) != 0) {
        return sprintf($lang_module['account_registered_name'], '<strong>' . $login . '</strong>');
    }
    $sql = "SELECT `userid` FROM `" . NV_USERS_GLOBALTABLE . "_reg` WHERE `userid`!=" . $user_info['userid'] . " AND `username`=" . $db->dbescape($login);
    if ($db->sql_numrows($db->sql_query($sql)) != 0) {
        return sprintf($lang_module['account_registered_name'], '<strong>' . $login . '</strong>');
    }
    return "";
}
开发者ID:syphuonglam,项目名称:creative-portal,代码行数:27,代码来源:editinfo.php

示例4: nv_check_username_reg

function nv_check_username_reg($login)
{
    global $db, $lang_module;
    $error = nv_check_valid_login($login, NV_UNICKMAX, NV_UNICKMIN);
    if ($error != "") {
        return preg_replace("/\\&(l|r)dquo\\;/", "", strip_tags($error));
    }
    if ($login != $db->fixdb($login)) {
        return sprintf($lang_module['account_deny_name'], '<strong>' . $login . '</strong>');
    }
    $sql = "SELECT `content` FROM `" . NV_USERS_GLOBALTABLE . "_config` WHERE `config`='deny_name'";
    $result = $db->sql_query($sql);
    list($deny_name) = $db->sql_fetchrow($result);
    $db->sql_freeresult();
    if (!empty($deny_name) and preg_match("/" . $deny_name . "/i", $login)) {
        return sprintf($lang_module['account_deny_name'], '<strong>' . $login . '</strong>');
    }
    $sql = "SELECT `userid` FROM `" . NV_USERS_GLOBALTABLE . "` WHERE `md5username`=" . $db->dbescape(md5($login));
    if ($db->sql_numrows($db->sql_query($sql)) != 0) {
        return sprintf($lang_module['account_registered_name'], '<strong>' . $login . '</strong>');
    }
    $sql = "SELECT `userid` FROM `" . NV_USERS_GLOBALTABLE . "_reg` WHERE `md5username`=" . $db->dbescape(md5($login));
    if ($db->sql_numrows($db->sql_query($sql)) != 0) {
        return sprintf($lang_module['account_registered_name'], '<strong>' . $login . '</strong>');
    }
    return "";
}
开发者ID:atarubi,项目名称:nuke-viet,代码行数:27,代码来源:register.php

示例5: elseif

} elseif ($step == 6) {
    $nextstep = 0;
    $error = '';
    define('NV_USERS_GLOBALTABLE', $db_config['prefix'] . '_users');
    // Bat dau phien lam viec cua MySQL
    $db = new NukeViet\Core\Database($db_config);
    if (!empty($db->error)) {
        $error = !empty($db->error['user_message']) ? $db->error['user_message'] : $db->error['message'];
    }
    $array_data['site_name'] = $nv_Request->get_title('site_name', 'post', $array_data['site_name'], 1);
    $array_data['nv_login'] = nv_substr($nv_Request->get_title('nv_login', 'post', $array_data['nv_login'], 1), 0, NV_UNICKMAX);
    $array_data['nv_email'] = $nv_Request->get_title('nv_email', 'post', $array_data['nv_email']);
    $array_data['nv_password'] = $nv_Request->get_title('nv_password', 'post', $array_data['nv_password']);
    $array_data['re_password'] = $nv_Request->get_title('re_password', 'post', $array_data['re_password']);
    $array_data['lang_multi'] = (int) $nv_Request->get_bool('lang_multi', 'post', $array_data['lang_multi']);
    $check_login = nv_check_valid_login($array_data['nv_login'], NV_UNICKMAX, NV_UNICKMIN);
    $check_pass = nv_check_valid_pass($array_data['nv_password'], NV_UPASSMAX, NV_UPASSMIN);
    $check_email = nv_check_valid_email($array_data['nv_email']);
    $array_data['question'] = $nv_Request->get_title('question', 'post', $array_data['question'], 1);
    $array_data['answer_question'] = $nv_Request->get_title('answer_question', 'post', $array_data['answer_question'], 1);
    $global_config['site_email'] = $array_data['nv_email'];
    if ($nv_Request->isset_request('nv_login,nv_password', 'post')) {
        if (empty($array_data['site_name'])) {
            $error = $lang_module['err_sitename'];
        } elseif (!empty($check_login)) {
            $error = $check_login;
        } elseif ("'" . $array_data['nv_login'] . "'" != $db->quote($array_data['nv_login'])) {
            $error = sprintf($lang_module['account_deny_name'], '<strong>' . $array_data['nv_login'] . '</strong>');
        } elseif (!empty($check_email)) {
            $error = $check_email;
        } elseif (!empty($check_pass)) {
开发者ID:NukeVietCMS,项目名称:CodeWeb,代码行数:31,代码来源:index.php

示例6: nv_substr

 } else {
     $_user['password1'] = $_user['password2'] = '';
 }
 $_user['question'] = nv_substr($nv_Request->get_title('question', 'post', '', 1), 0, 255);
 $_user['answer'] = nv_substr($nv_Request->get_title('answer', 'post', '', 1), 0, 255);
 $_user['first_name'] = nv_substr($nv_Request->get_title('first_name', 'post', '', 1), 0, 255);
 $_user['last_name'] = nv_substr($nv_Request->get_title('last_name', 'post', '', 1), 0, 255);
 $_user['gender'] = nv_substr($nv_Request->get_title('gender', 'post', '', 1), 0, 1);
 $_user['photo'] = nv_substr($nv_Request->get_title('photo', 'post', '', 1), 0, 255);
 $_user['view_mail'] = $nv_Request->get_int('view_mail', 'post', 0);
 $_user['sig'] = $nv_Request->get_textarea('sig', '', NV_ALLOWED_HTML_TAGS);
 $_user['birthday'] = $nv_Request->get_title('birthday', 'post');
 $_user['in_groups'] = $nv_Request->get_typed_array('group', 'post', 'int');
 $_user['delpic'] = $nv_Request->get_int('delpic', 'post', 0);
 $custom_fields = $nv_Request->get_array('custom_fields', 'post');
 if ($_user['username'] != $row['username'] and ($error_username = nv_check_valid_login($_user['username'], NV_UNICKMAX, NV_UNICKMIN)) != '') {
     $error = $error_username;
 } elseif ("'" . $_user['username'] . "'" != $db->quote($_user['username'])) {
     $error = sprintf($lang_module['account_deny_name'], '<strong>' . $_user['username'] . '</strong>');
 } elseif (($error_xemail = nv_check_valid_email($_user['email'])) != '') {
     $error = $error_xemail;
 } elseif ($db->query('SELECT userid FROM ' . NV_USERS_GLOBALTABLE . ' WHERE userid!=' . $userid . ' AND md5username=' . $db->quote(nv_md5safe($_user['username'])))->fetchColumn()) {
     $error = $lang_module['edit_error_username_exist'];
 } elseif ($db->query('SELECT userid FROM ' . NV_USERS_GLOBALTABLE . ' WHERE userid!=' . $userid . ' AND email=' . $db->quote($_user['email']))->fetchColumn()) {
     $error = $lang_module['edit_error_email_exist'];
 } elseif ($db->query('SELECT userid FROM ' . NV_USERS_GLOBALTABLE . '_reg WHERE email=' . $db->quote($_user['email']))->fetchColumn()) {
     $error = $lang_module['edit_error_email_exist'];
 } elseif ($db->query('SELECT userid FROM ' . NV_USERS_GLOBALTABLE . '_openid WHERE userid!=' . $userid . ' AND email=' . $db->quote($_user['email']))->fetchColumn()) {
     $error = $lang_module['edit_error_email_exist'];
 } elseif (!empty($_user['password1']) and ($check_pass = nv_check_valid_pass($_user['password1'], NV_UPASSMAX, NV_UPASSMIN)) != '') {
     $error = $check_pass;
开发者ID:lzhao18,项目名称:nukeviet,代码行数:31,代码来源:edit.php

示例7: filter_text_input

 $_user['telephone'] = filter_text_input('telephone', 'post', '', 1, 100);
 $_user['fax'] = filter_text_input('fax', 'post', '', 1, 100);
 $_user['mobile'] = filter_text_input('mobile', 'post', '', 1, 100);
 $_user['view_mail'] = $nv_Request->get_int('view_mail', 'post', 0);
 $_user['sig'] = filter_text_textarea('sig', '', NV_ALLOWED_HTML_TAGS);
 $_user['birthday'] = filter_text_input('birthday', 'post', '', 1, 10);
 $_user['in_groups'] = $nv_Request->get_typed_array('group', 'post', 'int');
 if (!empty($_user['website'])) {
     if (!preg_match("#^(http|https|ftp|gopher)\\:\\/\\/#", $_user['website'])) {
         $_user['website'] = "http://" . $_user['website'];
     }
     if (!nv_is_url($_user['website'])) {
         $_user['website'] = "";
     }
 }
 if (($error_username = nv_check_valid_login($_user['username'], NV_UNICKMAX, NV_UNICKMIN)) != "") {
     $error = $error_username;
 } elseif ($_user['username'] != $db->fixdb($_user['username'])) {
     $error = sprintf($lang_module['account_deny_name'], '<strong>' . $_user['username'] . '</strong>');
 } elseif (($error_xemail = nv_check_valid_email($_user['email'])) != "") {
     $error = $error_xemail;
 } elseif ($db->sql_numrows($db->sql_query("SELECT `userid` FROM `" . NV_USERS_GLOBALTABLE . "` WHERE `md5username`=" . $db->dbescape(md5($_user['username'])))) != 0) {
     $error = $lang_module['edit_error_username_exist'];
 } elseif ($db->sql_numrows($db->sql_query("SELECT `userid` FROM `" . NV_USERS_GLOBALTABLE . "` WHERE `email`=" . $db->dbescape($_user['email']))) != 0) {
     $error = $lang_module['edit_error_email_exist'];
 } elseif ($db->sql_numrows($db->sql_query("SELECT `userid` FROM `" . NV_USERS_GLOBALTABLE . "_reg` WHERE `email`=" . $db->dbescape($_user['email']))) != 0) {
     $error = $lang_module['edit_error_email_exist'];
 } elseif ($db->sql_numrows($db->sql_query("SELECT `userid` FROM `" . NV_USERS_GLOBALTABLE . "_openid` WHERE `email`=" . $db->dbescape($_user['email']))) != 0) {
     $error = $lang_module['edit_error_email_exist'];
 } elseif (($check_pass = nv_check_valid_pass($_user['password1'], NV_UPASSMAX, NV_UPASSMIN)) != "") {
     $error = $check_pass;
开发者ID:atarubi,项目名称:nuke-viet,代码行数:31,代码来源:user_add.php

示例8: die

 * @License GNU/GPL version 2 or any later version
 * @Createdate 3/24/2010 23:58
 */
if (!defined('NV_IS_MOD_BANNERS')) {
    die('Stop!!!');
}
if (defined('NV_IS_BANNER_CLIENT')) {
    die('&nbsp;');
}
if ($nv_Request->get_int('save', 'post') == '1') {
    $login = strip_tags($nv_Request->get_string('login', 'post', ''));
    $password = strip_tags($nv_Request->get_string('password', 'post', ''));
    if ($global_config['gfx_chk']) {
        $seccode = strip_tags($nv_Request->get_string('seccode', 'post', ''));
    }
    $check_login = nv_check_valid_login($login, NV_UNICKMAX, NV_UNICKMIN);
    $check_pass = nv_check_valid_pass($password, NV_UPASSMAX, NV_UPASSMIN);
    if (!empty($check_login)) {
        die('action');
    } elseif (!empty($check_pass)) {
        die('action');
    } elseif ($global_config['gfx_chk'] and !nv_capcha_txt($seccode)) {
        die('action');
    } else {
        $stmt = $db->prepare('SELECT * FROM ' . NV_BANNERS_GLOBALTABLE . '_clients WHERE login = :login AND act=1');
        $stmt->bindParam(':login', $login, PDO::PARAM_STR);
        $stmt->execute();
        $row = $stmt->fetch();
        if (empty($row)) {
            die('action');
        } else {
开发者ID:anhtunguyen,项目名称:vietnamguide,代码行数:31,代码来源:logininfo.php

示例9: VALUES

        $query = "REPLACE INTO `" . NV_CONFIG_GLOBALTABLE . "` (`lang`, `module`, `config_name`, `config_value`) VALUES('sys', 'global', " . $db->dbescape($config_name) . ", " . $db->dbescape($config_value) . ")";
        $db->sql_query($query);
    }
    nv_save_file_config_global();
    nv_insert_logs(NV_LANG_DATA, $module_name, $lang_module['save'] . " " . $lang_module['config'], "config", $admin_info['userid']);
    Header('Location: ' . NV_BASE_ADMINURL . 'index.php?' . NV_NAME_VARIABLE . '=' . $module_name . '&' . NV_OP_VARIABLE . '=' . $op . '&rand=' . nv_genpass());
    exit;
}
if ($nv_Request->isset_request('submituser', 'post')) {
    $uid = $nv_Request->get_int('uid', 'post', 0);
    $username = filter_text_input('username', 'post', '', 1);
    $password = filter_text_input('password', 'post', '', 1);
    $password2 = filter_text_input('password2', 'post', '', 1);
    $begintime1 = filter_text_input('begintime1', 'post', 0, 1);
    $endtime1 = filter_text_input('endtime1', 'post', 0, 1);
    $errorlogin = nv_check_valid_login($username, NV_UNICKMAX, NV_UNICKMIN);
    if (!empty($errorlogin)) {
        $error[] = $errorlogin;
    } elseif (preg_match("/[^a-zA-Z0-9_-]/", $username)) {
        $error[] = $lang_module['rule_user'];
    }
    if (!empty($password) or empty($uid)) {
        $errorpassword = nv_check_valid_pass($password, NV_UPASSMAX, NV_UPASSMIN);
        if (!empty($errorpassword)) {
            $error[] = $errorpassword;
        }
        if ($password != $password2) {
            $error[] = $lang_module['passwordsincorrect'];
        } elseif (preg_match("/[^a-zA-Z0-9_-]/", $password)) {
            $error[] = $lang_module['rule_pass'];
        }
开发者ID:atarubi,项目名称:nuke-viet,代码行数:31,代码来源:config.php

示例10: array

$key_words = $module_info['keywords'];
$data = array();
$data['checkss'] = md5($client_info['session_id'] . $global_config['sitekey']);
$data['userField'] = nv_substr($nv_Request->get_title('userField', 'post', '', 1), 0, 100);
$data['answer'] = nv_substr($nv_Request->get_title('answer', 'post', '', 1), 0, 255);
$data['send'] = $nv_Request->get_bool('send', 'post', false);
$data['nv_seccode'] = $nv_Request->get_title('nv_seccode', 'post', '');
$checkss = $nv_Request->get_title('checkss', 'post', '');
$seccode = $nv_Request->get_string('lostactivelink_seccode', 'session', '');
$step = 1;
$error = $question = '';
if ($checkss == $data['checkss']) {
    if (!empty($seccode) and md5($data['nv_seccode']) == $seccode or nv_capcha_txt($data['nv_seccode'])) {
        if (!empty($data['userField'])) {
            $check_email = nv_check_valid_email($data['userField']);
            $check_login = nv_check_valid_login($data['userField'], NV_UNICKMAX, NV_UNICKMIN);
            if (!empty($check_email) and !empty($check_login)) {
                $step = 1;
                $nv_Request->unset_request('lostactivelink_seccode', 'session');
                $error = $lang_module['lostactivelink_no_info2'];
            } else {
                $exp = NV_CURRENTTIME - 86400;
                if (empty($check_email)) {
                    $sql = 'SELECT * FROM ' . NV_USERS_GLOBALTABLE . '_reg WHERE email= :userField AND regdate>' . $exp;
                } else {
                    $sql = 'SELECT * FROM ' . NV_USERS_GLOBALTABLE . '_reg WHERE username= :userField AND regdate>' . $exp;
                }
                $stmt = $db->prepare($sql);
                $stmt->bindParam(':userField', $data['userField'], PDO::PARAM_STR);
                $stmt->execute();
                $row = $stmt->fetch();
开发者ID:lzhao18,项目名称:nukeviet,代码行数:31,代码来源:lostactivelink.php

示例11: openidLogin_Res1


//.........这里部分代码省略.........
                        include NV_ROOTDIR . "/includes/footer.php";
                        exit;
                    } else {
                        openidLogin_Res0($lang_module['openid_confirm_failed']);
                        die;
                    }
                }
                $page_title = $mod_title = $lang_module['openid_active_title'];
                $key_words = $module_info['keywords'];
                $lang_module['login_info'] = sprintf($lang_module['openid_active_confirm_info'], $email);
                $contents = openid_active_confirm($gfx_chk, $attribs);
                include NV_ROOTDIR . "/includes/header.php";
                echo nv_site_theme($contents);
                include NV_ROOTDIR . "/includes/footer.php";
                exit;
            } else {
                $nv_Request->unset_request('openid_attribs', 'session');
                openidLogin_Res0($lang_module['account_register_to_admin']);
                die;
            }
        }
    }
    $option = $nv_Request->get_int('option', 'get', 0);
    if (!$global_config['allowuserreg']) {
        $option = 3;
    }
    $contents = "";
    if ($option == 3) {
        $error = "";
        if ($nv_Request->isset_request('nv_login', 'post')) {
            $nv_username = filter_text_input('nv_login', 'post', '');
            $nv_password = filter_text_input('nv_password', 'post', '');
            $nv_seccode = filter_text_input('nv_seccode', 'post', '');
            $check_login = nv_check_valid_login($nv_username, NV_UNICKMAX, NV_UNICKMIN);
            $check_pass = nv_check_valid_pass($nv_password, NV_UPASSMAX, NV_UPASSMIN);
            $check_seccode = !$gfx_chk ? true : (nv_capcha_txt($nv_seccode) ? true : false);
            if (!$check_seccode) {
                $error = $lang_global['securitycodeincorrect'];
            } elseif (!empty($check_login)) {
                $error = $check_login;
            } elseif (!empty($check_pass)) {
                $error = $check_pass;
            } else {
                $sql = "SELECT * FROM `" . NV_USERS_GLOBALTABLE . "` WHERE `username`=" . $db->dbescape($nv_username);
                $result = $db->sql_query($sql);
                $numrows = $db->sql_numrows($result);
                if ($numrows != 1) {
                    $error = $lang_global['loginincorrect'];
                } else {
                    $row = $db->sql_fetchrow($result);
                    if (empty($row['password']) or !$crypt->validate($nv_password, $row['password'])) {
                        $error = $lang_global['loginincorrect'];
                    } else {
                        if (!$row['active']) {
                            $error = $lang_module['login_no_active'];
                        } else {
                            $nv_Request->unset_request('openid_attribs', 'session');
                            $sql = "INSERT INTO `" . NV_USERS_GLOBALTABLE . "_openid` VALUES (" . intval($row['userid']) . ", " . $db->dbescape($attribs['id']) . ", " . $db->dbescape($opid) . ", " . $db->dbescape($email) . ")";
                            $db->sql_query($sql);
                            validUserLog($row, 1, $opid);
                        }
                    }
                }
            }
            if (empty($error)) {
                $nv_redirect = !empty($nv_redirect) ? nv_base64_decode($nv_redirect) : NV_BASE_SITEURL . "index.php?" . NV_LANG_VARIABLE . "=" . NV_LANG_DATA . "&" . NV_NAME_VARIABLE . "=" . $module_name;
开发者ID:syphuonglam,项目名称:creative-portal,代码行数:67,代码来源:login.php


注:本文中的nv_check_valid_login函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。