我试图在PHP中创建一个随机字符串,但我完全没有得到以下输出:

<?php
    function RandomString()
    {
        $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        $randstring = '';
        for ($i = 0; $i < 10; $i++) {
            $randstring = $characters[rand(0, strlen($characters))];
        }
        return $randstring;
    }

    RandomString();
    echo $randstring;

我做错了什么?

推荐答案

要具体回答这个问题,有两个问题:

  1. 回声时,$randstring不在范围内.
  2. 这些字符在循环中没有连接在一起.

以下是带有更正的代码片段:

function generateRandomString($length = 10) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    return $randomString;
}

使用下面的调用输出随机字符串:

// Echo the random string.
// Optionally, you can give it a desired string length.
echo generateRandomString();

Please note that this generates predictable random strings. If you want to create secure tokens, 100.

Php相关问答推荐

根据自定义输入字段更新WooCommerce产品价格

谷歌云SQL / mysql谁是对的?

自定义WooCommerce查询字符串仅显示前3个产品

如果WooCommerce中存在特定的运输方式,则隐藏其他运输方式

从含有特殊字符的ANSI文本文件中读取数据是在移值,为什么?

从WooCommerce购物车和 checkout 页面自定义发货标签

如何将WooCommerce产品属性术语名称显示为链接术语?

多行PHP属性声明中是否允许单行注释

Laravel:测试命令时无法获取工作通知::AssertSentTo

PHP测试字符串的所有POST值

将下拉 Select 的值从WooCommerce后端保存并显示到前端

上传WordPress模板中的翻译文件(.mo和.po)

Shopware 6插件:由于删除了配置密钥,更新后配置值不正确

如何使用 PHP 创建简化的 twig 替换?

如何在 Woocommerce 中自动删除旧的已完成订单

在WooCommerce购物车和 checkout 页面中更改总计文本

为 WordPress 页面创建新功能

正则表达式请帮我从内容中找到这个词

服务器遇到内部错误或配置错误,无法完成您的请求

如何在 Laravel 中验证多个输入?