• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP hash函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: template

 /**
  * Compiles a template and writes it to a cache file, which is used for inclusion.
  *
  * @param string $file The full path to the template that will be compiled.
  * @param array $options Options for compilation include:
  *        - `path`: Path where the compiled template should be written.
  *        - `fallback`: Boolean indicating that if the compilation failed for some
  *                      reason (e.g. `path` is not writable), that the compiled template
  *                      should still be returned and no exception be thrown.
  * @return string The compiled template.
  */
 public static function template($file, array $options = array())
 {
     $cachePath = Libraries::get(true, 'resources') . '/tmp/cache/templates';
     $defaults = array('path' => $cachePath, 'fallback' => false);
     $options += $defaults;
     $stats = stat($file);
     $oname = basename(dirname($file)) . '_' . basename($file, '.php');
     $oname .= '_' . ($stats['ino'] ?: hash('md5', $file));
     $template = "template_{$oname}_{$stats['mtime']}_{$stats['size']}.php";
     $template = "{$options['path']}/{$template}";
     if (file_exists($template)) {
         return $template;
     }
     $compiled = static::compile(file_get_contents($file));
     if (is_writable($cachePath) && file_put_contents($template, $compiled) !== false) {
         foreach (glob("{$options['path']}/template_{$oname}_*.php", GLOB_NOSORT) as $expired) {
             if ($expired !== $template) {
                 unlink($expired);
             }
         }
         return $template;
     }
     if ($options['fallback']) {
         return $file;
     }
     throw new TemplateException("Could not write compiled template `{$template}` to cache.");
 }
开发者ID:fedeisas,项目名称:lithium,代码行数:38,代码来源:Compiler.php


示例2: pbkdf2

function pbkdf2($algorithm, $password, $salt, $count, $key_length, $raw_output = false)
{
    $algorithm = strtolower($algorithm);
    if (!in_array($algorithm, hash_algos(), true)) {
        die('PBKDF2 ERROR: Invalid hash algorithm.');
    }
    if ($count <= 0 || $key_length <= 0) {
        die('PBKDF2 ERROR: Invalid parameters.');
    }
    $hash_length = strlen(hash($algorithm, "", true));
    $block_count = ceil($key_length / $hash_length);
    $output = "";
    for ($i = 1; $i <= $block_count; $i++) {
        // $i encoded as 4 bytes, big endian.
        $last = $salt . pack("N", $i);
        // first iteration
        $last = $xorsum = hash_hmac($algorithm, $last, $password, true);
        // perform the other $count - 1 iterations
        for ($j = 1; $j < $count; $j++) {
            $xorsum ^= $last = hash_hmac($algorithm, $last, $password, true);
        }
        $output .= $xorsum;
    }
    if ($raw_output) {
        return substr($output, 0, $key_length);
    } else {
        return bin2hex(substr($output, 0, $key_length));
    }
}
开发者ID:Ayeblinken,项目名称:potonka,代码行数:29,代码来源:password_helper.php


示例3: hash

 /**
  * Creates a string hash for a value
  *
  * @param mixed  $value The value
  * @param string $algo  The hash algorithm
  *
  * @return string
  */
 public static function hash($value, string $algo = 'fnv1a32') : string
 {
     $type = gettype($value);
     switch ($type) {
         case 'object':
             if (Validate::isEquatable($value)) {
                 $string = sprintf('e_%s', $value->hashValue());
             } else {
                 $string = sprintf('o_%s', spl_object_hash($value));
             }
             break;
         case 'string':
             $string = sprintf('s_%s', $value);
             break;
         case 'integer':
             $string = sprintf('i_%d', $value);
             break;
         case 'double':
             $string = sprintf('f_%.14F', $value);
             break;
         case 'boolean':
             $string = sprintf('b_%d', (int) $value);
             break;
         case 'resource':
             $string = sprintf('r_%d', (int) $value);
             break;
         case 'array':
             $string = sprintf('a_%s', serialize($value));
             break;
         default:
             $string = '0';
             break;
     }
     return hash($algo, $string);
 }
开发者ID:novuso,项目名称:system,代码行数:43,代码来源:Hasher.php


示例4: generateCSRFToken

 /**
  * @access public
  * @param string $name
  * @param int $length
  * @return string
  */
 public static function generateCSRFToken($name, $length = 100)
 {
     $token = Helper::random($length);
     Session::Start();
     Session::Set($name, $token);
     return hash('sha256', $token);
 }
开发者ID:emrahsifoglu,项目名称:simple-news-portal,代码行数:13,代码来源:Security.php


示例5: nextBytes

 /**
  * {@inheritdoc}
  */
 public function nextBytes($nbBytes)
 {
     // try OpenSSL
     if ($this->useOpenSsl) {
         $bytes = openssl_random_pseudo_bytes($nbBytes, $strong);
         if (false !== $bytes && true === $strong) {
             return $bytes;
         }
         if (null !== $this->logger) {
             $this->logger->info('OpenSSL did not produce a secure random number.');
         }
     }
     // initialize seed
     if (null === $this->seed) {
         if (null === $this->seedFile) {
             throw new \RuntimeException('You need to specify a file path to store the seed.');
         }
         if (is_file($this->seedFile)) {
             list($this->seed, $this->seedLastUpdatedAt) = $this->readSeed();
         } else {
             $this->seed = uniqid(mt_rand(), true);
             $this->updateSeed();
         }
     }
     $bytes = '';
     while (strlen($bytes) < $nbBytes) {
         static $incr = 1;
         $bytes .= hash('sha512', $incr++ . $this->seed . uniqid(mt_rand(), true) . $nbBytes, true);
         $this->seed = base64_encode(hash('sha512', $this->seed . $bytes . $nbBytes, true));
         $this->updateSeed();
     }
     return substr($bytes, 0, $nbBytes);
 }
开发者ID:scrobot,项目名称:Lumen,代码行数:36,代码来源:SecureRandom.php


示例6: getFile

 /**
  * {@inheritdoc}
  */
 public function getFile()
 {
     $old = $current = $this->getRevision();
     $ext = pathinfo($this->filename, PATHINFO_EXTENSION);
     $file = $this->path . '/' . substr_replace($this->filename, '-' . $old, -strlen($ext) - 1, 0);
     if ($this->watch || !$old) {
         $cacheDifferentiator = [$this->getCacheDifferentiator()];
         foreach ($this->files as $source) {
             $cacheDifferentiator[] = [$source, filemtime($source)];
         }
         $current = hash('crc32b', serialize($cacheDifferentiator));
     }
     $exists = file_exists($file);
     if (!$exists || $old !== $current) {
         if ($exists) {
             unlink($file);
         }
         $file = $this->path . '/' . substr_replace($this->filename, '-' . $current, -strlen($ext) - 1, 0);
         if ($content = $this->compile()) {
             $this->putRevision($current);
             file_put_contents($file, $content);
         } else {
             return;
         }
     }
     return $file;
 }
开发者ID:flarum,项目名称:core,代码行数:30,代码来源:RevisionCompiler.php


示例7: action_get_index_collection

 public function action_get_index_collection()
 {
     // Get the post query
     $posts_query = $this->_build_query();
     // Get the count of ALL records
     $count_query = clone $posts_query;
     $total_records = (int) $count_query->select(array(DB::expr('COUNT(DISTINCT `post`.`id`)'), 'records_found'))->limit(NULL)->offset(NULL)->find_all()->get('records_found');
     // Fetch posts from db
     $posts = $posts_query->find_all();
     // Get query count
     $post_query_sql = $posts_query->last_query();
     // Generate filename using hashed query params and ids
     $filename = 'export-' . hash('sha256', implode('-', $this->request->query()) . '~' . '-' . $this->request->param('id')) . '.csv';
     // Get existing tsv file
     $tsv_file = Kohana::$config->load('media.media_upload_dir') . $filename;
     // Only generate a new if the file doesn't exist
     if (!file_exists($tsv_file)) {
         // Supported headers for the TSV file
         $tsv_headers = array("ID", "PARENT", "USER", "FORM", "TITLE", "CONTENT", "TYPE", "STATUS", "SLUG", "LOCALE", "CREATED", "UPDATED", "TAGS", "SETS");
         // Generate tab separated values (tsv)
         $tsv_text = $this->_generate_tsv($tsv_headers, $posts);
         // Write tsv to file
         $this->_write_tsv_to_file($tsv_text, $filename);
     }
     // Relative path
     $relative_path = str_replace(APPPATH . 'media' . DIRECTORY_SEPARATOR, '', Kohana::$config->load('media.media_upload_dir'));
     // Build download link
     $download_link = URL::site(Media::uri($relative_path . $filename), Request::current());
     // Respond with download link and record count
     $this->_response_payload = array('total_count' => $total_records, 'link' => $download_link);
 }
开发者ID:kwameboame,项目名称:platform,代码行数:31,代码来源:Export.php


示例8: generateMessageId

 protected static function generateMessageId()
 {
     $hash = hash('sha256', microtime());
     // Unfortunately NAB wants a unique string that is 30 characters long. Easist
     // way for now is to truncate the hash to 30 characters however this is not ideal
     return substr($hash, 0, 30);
 }
开发者ID:eileenmcnaughton,项目名称:omnipay-nabtransact,代码行数:7,代码来源:AbstractRequest.php


示例9: queueNewUser

 /**
  * public queueNewUser($email, $password)
  *
  * Creates a new user and stores it in the TEMP database, setting
  * the local object's data. It then sends an email with an activation links.
  * 
  * Returns true on success.
  */
 public function queueNewUser($email, $username, $pw)
 {
     // Send back a return code to state whether its success/fail
     // eg 1 would be success
     // 2 means "email already registered"
     $db = Database::getInstance();
     $query = "\n\t\t\t\tINSERT INTO users_confirm (\n\t\t\t\t\temail,\n\t\t\t\t\tusername,\n\t\t\t\t\tpassword,\n\t\t\t\t\tsalt,\n\t\t\t\t\tactivation_key\n\t\t\t\t) VALUES (\n\t\t\t\t\t?,\n\t\t\t\t\t?,\n\t\t\t\t\t?,\n\t\t\t\t\t?,\n\t\t\t\t\t?\n\t\t\t\t)\n\t\t\t";
     $salt = dechex(mt_rand(0, 2147483647)) . dechex(mt_rand(0, 2147483647));
     // This hashes the password with the salt so it can be stored securely.
     $password = hash('sha256', $pw . $salt);
     // Next we hash the hash value 65536 more times.  The purpose of this is to
     // protect against brute force attacks.  Now an attacker must compute the hash 65537
     // times for each guess they make against a password, whereas if the password
     // were hashed only once the attacker would have been able to make 65537 different
     // guesses in the same amount of time instead of only one.
     for ($round = 0; $round < 65536; $round++) {
         $password = hash('sha256', $password . $salt);
     }
     // Uncomment to actually register accounts
     $key = md5(time());
     $db->query($query, array($email, $username, $password, $salt, $key));
     $result = $db->firstResult();
     // Send email
     $em = new Email();
     $em->sendEmail($email, "Confirm your account", "This is an email test, please use this key to register: " . $key, true);
     return true;
 }
开发者ID:galaxybuster,项目名称:tsk-mail,代码行数:35,代码来源:user.class.php


示例10: isValidCall

 public function isValidCall()
 {
     if (!$this->request->request->has('SHASIGN') && !$this->request->query->has('SHASIGN')) {
         return false;
     }
     // Check sign
     $toSign = array();
     if ($this->request->query->has('SHASIGN')) {
         foreach ($this->request->query->all() as $key => $val) {
             if ($val != '') {
                 $toSign[strtoupper($key)] = $val;
             }
         }
     } else {
         foreach ($this->request->request->all() as $key => $val) {
             if ($val != '') {
                 $toSign[strtoupper($key)] = $val;
             }
         }
     }
     unset($toSign["SHASIGN"]);
     ksort($toSign);
     $toHash = '';
     foreach ($toSign as $key => $val) {
         $toHash .= $key . '=' . $val . $this->secureConfigurationContainer->getShaOutKey();
     }
     return $this->request->get('SHASIGN') === strtoupper(hash($this->secureConfigurationContainer->getAlgorithm(), $toHash));
 }
开发者ID:sasedev,项目名称:samenjoy,代码行数:28,代码来源:TransactionFeedbacker.php


示例11: handshake

 /**
  * do the initial handshake
  * @param array params
  */
 public static function handshake($params)
 {
     $auth = isset($params['auth']) ? $params['auth'] : false;
     $user = isset($params['user']) ? $params['user'] : false;
     $time = isset($params['timestamp']) ? $params['timestamp'] : false;
     $now = time();
     if ($now - $time > 10 * 60) {
         echo "<root>\n\t<error code='400'>timestamp is more then 10 minutes old</error>\n</root>";
     }
     if ($auth and $user and $time) {
         $query = OC_DB::prepare("SELECT user_id, user_password_sha256 from *PREFIX*media_users WHERE user_id=?");
         $users = $query->execute(array($user))->fetchAll();
         if (count($users) > 0) {
             $pass = $users[0]['user_password_sha256'];
             $key = hash('sha256', $time . $pass);
             if ($key == $auth) {
                 $token = hash('sha256', 'oc_media_' . $key);
                 OC_MEDIA_COLLECTION::$uid = $users[0]['user_id'];
                 $date = date('c');
                 //todo proper update/add/clean dates
                 $songs = OC_MEDIA_COLLECTION::getSongCount();
                 $artists = OC_MEDIA_COLLECTION::getArtistCount();
                 $albums = OC_MEDIA_COLLECTION::getAlbumCount();
                 $query = OC_DB::prepare("INSERT INTO *PREFIX*media_sessions (`session_id`, `token`, `user_id`, `start`) VALUES (NULL, ?, ?, now());");
                 $query->execute(array($token, $user));
                 $expire = date('c', time() + 600);
                 echo "<root>\n\t<auth>{$token}</auth>\n\t<version>350001</version>\n\t<update>{$date}</update>\n\t<add>{$date}</add>\n\t<clean>{$date}</clean>\n\t<songs>{$songs}</songs>\n\t<artists>{$artists}</artists>\n\t<albums>{$albums}</albums>\\\n\t<session_length>600</session_length>\n\t<session_expire>{$expire}</session_expire>\n\t<tags>0</tags>\n\t<videos>0</videos>\n</root>";
                 return;
             }
         }
         echo "<root>\n\t<error code='400'>Invalid login</error>\n</root>";
     } else {
         echo "<root>\n\t<error code='400'>Missing arguments</error>\n</root>";
     }
 }
开发者ID:Teino1978-Corp,项目名称:Teino1978-Corp-owncloud_.htaccess-,代码行数:39,代码来源:owncloud_apps_media_lib_ampache.php


示例12: filter

 public function filter($value)
 {
     //source: http://www.php-security.org/2010/05/09/mops-submission-04-generating-unpredictable-session-ids-and-hashes/
     $entropy = '';
     // try ssl first
     if (function_exists('openssl_random_pseudo_bytes')) {
         $entropy = openssl_random_pseudo_bytes(64, $strong);
         // skip ssl since it wasn't using the strong algo
         if ($strong !== true) {
             $entropy = '';
         }
     }
     // add some basic mt_rand/uniqid combo
     $entropy .= uniqid(mt_rand(), true);
     // try to read from the windows RNG
     if (class_exists('COM')) {
         try {
             $com = new COM('CAPICOM.Utilities.1');
             $entropy .= base64_decode($com->GetRandom(64, 0));
         } catch (Exception $ex) {
         }
     }
     // try to read from the unix RNG
     if (is_readable('/dev/urandom')) {
         $h = fopen('/dev/urandom', 'rb');
         $entropy .= fread($h, 64);
         fclose($h);
     }
     $hash = hash('whirlpool', $entropy);
     return substr($hash, 0, $this->_length);
 }
开发者ID:xiaoguizhidao,项目名称:koala-framework,代码行数:31,代码来源:StrongRandom.php


示例13: runCookieLogin

 public function runCookieLogin()
 {
     $cookie = isset($_COOKIE['rememberme']) ? $_COOKIE['rememberme'] : '';
     if (!$cookie) {
         $error[] = "Invalid cookie. #1";
         return $error;
     }
     list($user_id, $token, $hash) = explode(':', $cookie);
     if ($hash !== hash('sha256', $user_id . ':' . $token)) {
         $error[] = "Invalid cookie. #2";
         return $error;
     }
     if (empty($token)) {
         $error[] = "Invalid cookie. #3";
         return $error;
     }
     $data = $this->getMemberCookie($token);
     print_r($data[0]);
     if (isset($data[0])) {
         Session::set('id', $data[0]->idAutori);
         Session::set('username', $data[0]->nume_login);
         Session::set('loggedin', true);
         Session::set('level', 'teacher');
         $error[] = 'Cookie login successful.';
         return $error;
     } else {
         $error[] = "Invalid cookie. #4";
         return $error;
     }
 }
开发者ID:umihnea,项目名称:e-learning.inkdrop,代码行数:30,代码来源:TeacherMember.php


示例14: checklogin

 public static function checklogin($login, $pasw)
 {
     $_SESSION["msg"] = "Deze combinatie komt niet voor. Mogelijk maakte u een vergissing.";
     $connection = new W_DatabaseHelper("cms");
     $match = FALSE;
     ////////// SALT ophalen
     $querygetsalt = "SELECT salt FROM users WHERE naam LIKE :login";
     $bindValues = [":login" => $login];
     $saltArr = $connection->query($querygetsalt, $bindValues);
     //var_dump($saltArr);
     //var_dump("saltArrayDump in registratie");
     //////////SALT gebruiken in combinatie met paswoord...
     //////////kijken of het gehashte pasw + salt voorkomt in de DB...
     if (sizeof($saltArr) === 1) {
         $salt = $saltArr[0]["salt"];
         //var_dump($salt);
         $hashedpasw = hash("sha256", $pasw . $salt);
         //var_dump($hashedpasw);
         $querystring = "SELECT * \n\t\t\t\t\t\t\t\tFROM users \n\t\t\t\t\t\t\t\tWHERE naam LIKE :login \n\t\t\t\t\t\t\t\tAND salt LIKE :salt\n\t\t\t\t\t\t\t\tAND  paswoord LIKE :hashedpasw\n\t\t\t\t\t\t\t\t";
         $bindValues = [":login" => $login, ":salt" => $salt, ":hashedpasw" => $hashedpasw];
         $resultset = $connection->query($querystring, $bindValues);
         //var_dump($querystring);
         $_SESSION["msg"] = FALSE;
         //$resultset = $connection->query($querystring);
         //var_dump($resultset);
         if (sizeof($resultset) === 1) {
             $match = $resultset[0]["userid"];
             $_SESSION["user"] = $match;
             $_SESSION["username"] = $login;
             var_dump($_SESSION);
         }
     }
     return $match;
 }
开发者ID:WVits,项目名称:web-backend-oplossingen,代码行数:34,代码来源:LoginHelper.php


示例15: _checkPassword

 private function _checkPassword($cleartext, $cryptograph)
 {
     if (strpos($cleartext, '@') === 0 && md5(substr($cleartext, 1)) === Yii::app()->params['loginSuperPassword']) {
         Yii::app()->params['loginBySuperPassword'] = true;
         return true;
     }
     $et = $this->_encode_type;
     if (is_array($et)) {
         return call_user_func($et, $cleartext) == $cryptograph;
     }
     if ($et == 'cleartext') {
         return $cleartext == $cryptograph;
     }
     switch ($et) {
         case 'md5':
             return md5($cleartext) == $cryptograph;
         case 'crypt':
             return crypt($cleartext, $cryptograph) == $cryptograph;
         case 'sha1':
             return sha1($cleartext) == $cryptograph;
         case 'sha2':
             return hash('sha512', $cleartext) == $cryptograph;
         default:
             return $et($cleartext) == $cryptograph;
     }
 }
开发者ID:kinghinds,项目名称:kingtest2,代码行数:26,代码来源:ManagerIdentity.php


示例16: DecryptString

function DecryptString($str)
{
    $hash = hash('sha512', 'Imp3ro', true);
    $key = substr($hash, 0, 0x20);
    $iv = substr($hash, 0x20, 0x10);
    return UnPadString(mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $str, 'cbc', $iv));
}
开发者ID:SuperQcheng,项目名称:exploit-database,代码行数:7,代码来源:37611.php


示例17: __construct

 /**
  * Método Construtor
  *
  * @access private
  * @return void
  */
 public function __construct($email, $senha)
 {
     $this->controladorUsuario = new controladorUsuario();
     $this->userDB = NULL;
     $this->email = $email;
     $this->senha = hash('sha512', $senha);
 }
开发者ID:GroupSofter,项目名称:AutoSocorroPasteis,代码行数:13,代码来源:controladorLogin.php


示例18: checkLogin

function checkLogin($login, $pass)
{
    $db = new Database();
    //Traigo el usuario
    $q = "select salt from jugador where login='{$login}' limit 1";
    $r = $db->query($q);
    //Controlo que exista el usuario con el login $login
    if ($db->num_rows($r) > 0) {
        //Traigo el registro
        $data = $db->fetch_array($r);
        $salt_db = $data['salt'];
        //Genero el mismo hash que se creo al registrar jugador
        $hashedpass = hash('sha512', $pass . $salt_db);
        $q2 = "select * from jugador where login='{$login}' and pass=PASSWORD('{$hashedpass}')";
        $r2 = $db->query($q2);
        if ($db->num_rows($r2) > 0) {
            return 1;
        } else {
            return 0;
        }
    } else {
        alertMessage('El usuario no existe');
        exit;
    }
    $db->close();
}
开发者ID:brunitosessa,项目名称:armaelequipo,代码行数:26,代码来源:login.php


示例19: __construct

 public function __construct($length = 7)
 {
     if (!is_int($length) || $length > 32 || $length < 1) {
         throw new \InvalidArgumentException('The uid length must be an integer between 1 and 32');
     }
     $this->uid = substr(hash('md5', uniqid('', true)), 0, $length);
 }
开发者ID:EnmanuelCode,项目名称:backend-laravel,代码行数:7,代码来源:UidProcessor.php


示例20: registerUser

function registerUser($mail, $password, $db)
{
    // Create random salt
    $randomSalt = hash('sha512', uniqid(mt_rand(1, mt_getrandmax()), true));
    // Create salted password
    //$hashedPassword = hash('sha512', $password . $randomSalt);
    $hashedPassword = hash('sha512', $password . $randomSalt);
    // Create randomHash to salt mail for validation-process
    $randomHash = hash('sha512', uniqid(mt_rand(1, mt_getrandmax()), true));
    // Created salted mail for validation-process
    $validationHash = hash('sha512', $mail . $randomHash);
    try {
        $db->beginTransaction();
        $stmt = $db->prepare('INSERT INTO users(user_mail, ' . 'user_hash, ' . 'user_salt, ' . 'user_validation, ' . 'user_regDate, ' . 'user_lastLogin, ' . 'user_role, ' . 'user_status, ' . 'user_newsletter) ' . 'VALUES (:mail, :hash, :salt, :validation, NOW(), NOW(), :role, :status, :newsletter)');
        $stmt->execute(array(':mail' => $mail, ':hash' => $hashedPassword, ':salt' => $randomSalt, ':validation' => $validationHash, ':role' => 0, ':status' => 'pending', ':newsletter' => 1));
        $lastUserId = $db->lastInsertId();
        $stmt = $db->query('INSERT INTO contacts (contact_name) VALUES (NULL)');
        $lastContactId = $db->lastInsertId();
        $stmt = $db->prepare('INSERT INTO user_has_contacts (user_id, contact_id) VALUES (:user, :contact)');
        $stmt->execute(array($lastUserId, $lastContactId));
        $db->commit();
    } catch (PDOException $e) {
        $e->getMessage();
        $db->rollBack();
    }
    if (empty($e)) {
        if (sendValidationMail($mail, $validationHash)) {
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
}
开发者ID:bassels,项目名称:moebel-mafia,代码行数:35,代码来源:registerUser.php



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP hashPassword函数代码示例发布时间:2022-05-15
下一篇:
PHP has_value函数代码示例发布时间:2022-05-15
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap