PHP:生成随机字符串并使其符合URL安全规范,以及撤销使其符合URL安全规范的任何操作。

4
给定一个随机生成的字符串,我该如何将其转换为URL安全的字符串 - 然后再“取消转换”?
PHP的bin2hex函数(参见:http://www.php.net/manual/en/function.bin2hex.php)似乎可以将字符串安全地转换为URL安全字符。 hex2bin函数(参见:http://www.php.net/manual/en/function.hex2bin.php)可能尚未准备好。以下自定义的hex2bin函数有时起作用:
function hex2bin($hexadecimal_data)
{
    $binary_representation = '';

    for ($i = 0; $i < strlen($hexadecimal_data); $i += 2)
    {
        $binary_representation .= chr(hexdec($hexadecimal_data{$i} . $hexadecimal_data{($i + 1)}));
    }

    return $binary_representation;
}

只有在函数的输入是有效的 bin2hex 字符串时才能正常工作。 如果我发送的不是 bin2hex 的结果,它就会失败。 我似乎无法让它在出现问题时抛出异常。

有什么建议吗? 我并不一定要使用 hex2bin/bin2hex。 我只需要将随机字符串转换为 URL 安全字符串,然后反向处理即可。


2
urlencode/urldecode有什么问题吗? - Jimmy Sawczuk
2个回答

9
你需要做的是对字符串进行URL编码/解码:
$randomString = ...;

$urlSafe = urlencode($randomString);

$urlNotSafe = urldecode($urlSafe); // == $randomString

1

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