给定一个随机生成的字符串,如何将其转换为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安全字符串,然后反转该过程。
答案 0 :(得分:9)
您要做的是URL编码/解码字符串:
$randomString = ...;
$urlSafe = urlencode($randomString);
$urlNotSafe = urldecode($urlSafe); // == $randomString
答案 1 :(得分:1)
您可以使用urlencode() / urldecode()。