如何使用PHP生成随机人名?

10

非常感谢您提前回答/尝试回答我的问题。

我目前正在使用一个php脚本来生成随机字符串,但现在我想生成一个人的随机姓名,而不仅仅是生成一个随机字符串。 我的旧代码大致如下:

<?php
function RandomString($length) {
    $keys = array_merge(range('a', 'z'), range('A', 'Z'));
    for($i=0; $i < $length; $i++) {
        $key .= $keys[array_rand($keys)];
    }
    return $key;
}

print RandomString(6);
?>

提前感谢你的帮助。


你如何定义“名称”?sdfsd是名称还是alex - Rizier123
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - student
@Joe Wilkinson,你如何检查一个名称是否有效。也许你可以有一个有效名称列表并随机选择一个。 - Oli Soproni B.
如果你想要有效的名称,你必须拥有一个数据库,可能存储在数组或SQL中。 - IdidntKnewIt
3个回答

10

名称只是开始!看看Faker:

<?php
require_once '/path/to/Faker/src/autoload.php';

$faker = Faker\Factory::create();

echo $faker->name; 
echo $faker->phoneNumber;  
echo $faker->paragraph(2);

这可能会产生以下输出...每次都不一样:
 John Smith

 800-867-5309

 Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus
 et magnis dis parturient montes, nascetur ridiculus mus. Donec quam
 felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla
 consequat massa quis enim. Donec pede justo, fringilla vel, aliquet
 nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a,
 venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium.

 Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean
 vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat
 vitae, eleifend ac, enim. Aliquam lorem ante, dapibus in, viverra
 quis, feugiat a, tellus. 

更多信息请参见:https://github.com/fzaninotto/Faker


1
感谢 @David Hempy,虽然有点复杂,但我会在我的脚本中尝试一下,看看是否适合我,无论如何,感谢您的好回复! - Joe Wilkinson
不要害怕!实际上,这只是此处显示的两行代码,然后您可以放入任何想放置的虚假姓名、地址和称谓。试一试吧! - David Hempy

9

我找到了这个问题,因为我需要同样的东西。对于其他寻找答案的人来说,这是一个包含50个名字和50个姓氏的函数,可以提供2500种可能性。它基于已接受的答案,并且随机名称来自http://listofrandomnames.com

echo randomName();

function randomName() {
    $firstname = array(
        'Johnathon',
        'Anthony',
        'Erasmo',
        'Raleigh',
        'Nancie',
        'Tama',
        'Camellia',
        'Augustine',
        'Christeen',
        'Luz',
        'Diego',
        'Lyndia',
        'Thomas',
        'Georgianna',
        'Leigha',
        'Alejandro',
        'Marquis',
        'Joan',
        'Stephania',
        'Elroy',
        'Zonia',
        'Buffy',
        'Sharie',
        'Blythe',
        'Gaylene',
        'Elida',
        'Randy',
        'Margarete',
        'Margarett',
        'Dion',
        'Tomi',
        'Arden',
        'Clora',
        'Laine',
        'Becki',
        'Margherita',
        'Bong',
        'Jeanice',
        'Qiana',
        'Lawanda',
        'Rebecka',
        'Maribel',
        'Tami',
        'Yuri',
        'Michele',
        'Rubi',
        'Larisa',
        'Lloyd',
        'Tyisha',
        'Samatha',
    );

    $lastname = array(
        'Mischke',
        'Serna',
        'Pingree',
        'Mcnaught',
        'Pepper',
        'Schildgen',
        'Mongold',
        'Wrona',
        'Geddes',
        'Lanz',
        'Fetzer',
        'Schroeder',
        'Block',
        'Mayoral',
        'Fleishman',
        'Roberie',
        'Latson',
        'Lupo',
        'Motsinger',
        'Drews',
        'Coby',
        'Redner',
        'Culton',
        'Howe',
        'Stoval',
        'Michaud',
        'Mote',
        'Menjivar',
        'Wiers',
        'Paris',
        'Grisby',
        'Noren',
        'Damron',
        'Kazmierczak',
        'Haslett',
        'Guillemette',
        'Buresh',
        'Center',
        'Kucera',
        'Catt',
        'Badon',
        'Grumbles',
        'Antes',
        'Byron',
        'Volkman',
        'Klemp',
        'Pekar',
        'Pecora',
        'Schewe',
        'Ramage',
    );

    $name = $firstname[rand ( 0 , count($firstname) -1)];
    $name .= ' ';
    $name .= $lastname[rand ( 0 , count($lastname) -1)];

    return $name;
}

3
<?php
function randomName() {
    $names = array(
        'Juan',
        'Luis',
        'Pedro',
        // and so on

    );
    return $names[rand ( 0 , count($names) -1)];
}

print randomName();

谢谢Lea Tano!我正在寻找这样的东西。这个名字数组可以从在线或离线源中提取吗?无论如何,感谢您的回复。 - Joe Wilkinson

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