Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中为每个条目创建唯一的URL_Php - Fatal编程技术网

在PHP中为每个条目创建唯一的URL

在PHP中为每个条目创建唯一的URL,php,Php,因此,我试图通过PHP创建独立的网页,以供我尝试学习的实践 我想做的是为我网站上的每个条目创建唯一的URL 假设我的网站很简单,它只要求用户输入一个名称并将其记录到数据库中,然后为该用户创建一个唯一的URL,这样他就可以转到他的URL并查看他的名称 我希望为每个用户创建一个URL,比如最多8个字符a-z a-z 0-9,看起来像URL.com/uI53841a 因此,如果John去创建一个网站,它会创建一个url,例如,他可以访问url.com/uI53841a 我的数据库如下所示: creat

因此,我试图通过PHP创建独立的网页,以供我尝试学习的实践

我想做的是为我网站上的每个条目创建唯一的URL

假设我的网站很简单,它只要求用户输入一个名称并将其记录到数据库中,然后为该用户创建一个唯一的URL,这样他就可以转到他的URL并查看他的名称

我希望为每个用户创建一个URL,比如最多8个字符
a-z a-z 0-9
,看起来像
URL.com/uI53841a

因此,如果John去创建一个网站,它会创建一个url,例如,他可以访问
url.com/uI53841a

我的数据库如下所示:

create table if not exists `entry` (
    `uniqueURL` VARCHAR(8),
    `name` VARCHAR(16),
    primary key (`uniqueURL`)
) engine=innodb default charset=utf8;
我如何为每个向我的网站提交姓名的人生成一个唯一的ID?我该如何确保没有任何重复

我是PHP新手,正在努力学习,我知道你可以创建md5哈希,但是你如何随机设置并检查是否没有重复项?

检查这个

文档中的小片段:

<?php

$hashids = new Hashids\Hashids();

$id = $hashids->encode(1, 2, 3);
$numbers = $hashids->decode($id);

var_dump($id, $numbers);

这是我找到的一个,我做了一点,但它也很好用

function keygen()
{
    $chars = "abcdefghijklmnopqrstuvwxyz";
    $chars .= "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $chars .= "0123456789";
    while (1) {
        $key = '';
        srand((double) microtime() * 1000000);
        for ($i = 0; $i < 8; $i++) {
            $key .= substr($chars, (rand() % (strlen($chars))), 1);
        }
        break;
    }
    return $key;
}
函数keygen()
{
$chars=“abcdefghijklmnopqrstuvxyz”;
$chars.=“ABCDEFGHIJKLMNOPQRSTUVWXYZ”;
$chars.=“0123456789”;
而(1){
$key='';
srand((双)微时间()*1000000);
对于($i=0;$i<8;$i++){
$key.=substr($chars,(rand()%(strlen($chars))),1);
}
打破
}
返回$key;
}

php和MySQL都有一个独特的id函数。生成很简单,有多种方法。您可以查看PHP函数:@BrandonWhite他从来没有说过random,只是unique@Dagon我一定是看错了。哎呀。编辑,谢谢。我可以一直使用自动递增字段中的id-这是一种常见的方法。这很有趣,我一定会检查一下!这太棒了!我一直在玩它,这正是我所需要的,我只需要创建一些东西,将检查对数据库和随机它甚至更多,如果它重复的权利?我敢肯定这是一个非常小的机会去过度杀戮的方法:-)@sonicboom,是的,你需要建立基于唯一字符串的url。我更新了答案。@Dagon,我添加了关于简单地使用id作为URL的通知。我喜欢你的脚本,这或多或少就是我想要的。你5年前在这里贴的。你有关于碰撞的经验吗?