如何使用Laravel Faker生成随机字符串?

49

是否有任何方法或技巧可以使用 Laravel Faker 生成假字符串?

就像在 Laravel 中我们生成长度为20个字符的字符串一样。

 str_random(20);
5个回答

73

Faker提供了几种方法,让您可以用随机字符替换给定字符串中的占位符:

  • lexify - 将给定字符串中的?替换为随机字母
  • asciify - 将给定字符串中的*替换为随机ASCII字符
  • numerify - 将给定字符串中的#替换为随机数字
  • bothify - 结合了lexify和numerify的功能

根据您需要的随机字符串的要求,可以尝试使用其中之一。使用asciify可以得到最大集合的字符作为替换字符,因此使用它是最明智的选择。

以下内容将为您提供一个由20个随机ASCII字符组成的随机字符串

$faker->asciify('********************')

13
你可以用 str_repeat('*', 20) 来生成一个包含 20 个 * 的字符串。 - Sebastian Viereck

67

生成不含特殊字符的字符串的替代方法。

$faker->regexify('[A-Za-z0-9]{20}')

你可以使用类似 [A-z] 的方式来简化正则表达式中的 [A-Za-z]。 - francisco
3
@francisco 这两者不同。A-z 是 ASCII 65 到 122 的字符范围。你应该使用 /[A-Za-z]/ 或 /[a-z]/i,除非你想包括这些字符:[ \ ] ^ _ `。 - DevAntoine

4
$faker->text($maxNbChars = 50);

7
好的,我会尽力进行翻译。以下是您需要翻译的内容: Please explain your answer. - phoenixstudio
1
$faker->text(50); - Jiechao Wang
1
这是错误的,它在单词中间加了空格。 - Steve Moretz

4
$faker->text()
// generates 50 char by default: "Aut quo omnis placeat eos omnis eos."

$faker->text(10);
// generates 10 char by default: "Labore."

所有的文本似乎都是一个或多个拉丁伪句,中间有空格,并且每个句子的结尾都有一个点。

2

uze Faker\Provider\en_US\Text

<?php

realText($maxNbChars = 200, $indexSize = 2) // "And yet I wish you could manage it?) 'And what are they made of?' Alice asked in a shrill, passionate voice. 'Would YOU like cats if you were never even spoke to Time!' 'Perhaps not,' Alice replied."

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接