为内容创建随机生成的URL

时间:2016-01-10 02:39:46

标签: php web random generator

我为自己制作了一个迷你粘贴网站,有点像pastebin但更简单。我需要它来生成一个随机网址(类似于mysite.com/paste/ab8536dc2e,mysite.com?id = b91527a2ac,等格式并不重要),并在其中粘贴。我如何生成这样的网址并将其导入包含我在其中提交的内容的网页?我使用PHP,我更喜欢尽可能保持简单明了,除非需要,否则不要使用MySQL,jQuery等。

3 个答案:

答案 0 :(得分:2)

  1. 要生成随机路径,您可以使用PHP的内置uniqid() function

  2. 您需要在某处存储生成的路径(链接)列表。如果你不想要MySQL - 它可能是SQLite,Memcached甚至是纯文本文件。但是你必须把它们留在某个地方。

  3. 根据您选择的框架,您需要设置路由 - 检查链接是否存在(请参阅2),然后显示相应的内容。如果您决定不使用任何框架,您可以简单地解决$ _SERVER ['REQUEST_URI']全局变量。

答案 1 :(得分:2)

您可以使用以下功能:

function randomURL($URLlength = 8) {
    $charray = array_merge(range('a','z'), range('0','9'));
    $max = count($charray) - 1;
    for ($i = 0; $i < $URLlength; $i++) {
        $randomChar = mt_rand(0, $max);
        $url .= $charray[$randomChar];
    }
    return $url;
}

调用randomURL()来访问它。

(免责声明:这不是我的代码,我为同样的问题“借用”它。)

检查(Php create a file if not exists)是否使用该字符串在您的网站上创建文件。

答案 2 :(得分:1)

你可以使用这样的东西,然后根据你的意愿使用变量。

public void spinNext(){
    try {
        int nextIndex = spinnerStudent.getSelectedItemPosition()+1;
        if (nextIndex < studentList.size()){
            spinnerStudent.setSelection(nextIndex);
        }else{
            //spinnerStudent.setSelection(0);
            try{
                timer.cancel();
                timer = null;
            }catch(Throwable e){
                LogUtils.e("test","spinNext",e);
            }
        }
    }catch (Throwable e){
        LogUtils.e("test","spinNext",e);
    }
}
private Timer timer;

public void onBtnClick(){
    try {
        if(timer!=null){
            try {
                timer.cancel();
                timer = null;
            }catch (Throwable e){
                LogUtils.e("test","onBtnClick2",e);
            }
        }
        timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        spinNext();
                    }
                });
            }
        },0,1000);
    }catch (Throwable e){
        LogUtils.e("test","onBtnClick1",e);
    }
}

@Override
protected void onDestroy() {
    super.onDestroy();
    if(timer!=null){
        try {
            timer.cancel();
            timer = null;
        }catch (Throwable e){
            LogUtils.e("test","ondestroy",e);
        }
    }
}

其中$ i可以是您想要的任何内容,例如粘贴总数。 不需要for循环

相关问题