将%21等的编码更改为字符

时间:2013-08-04 13:43:00

标签: php encoding urlencode

我正在开发一种工具,可以使用不同的字体选项从用户输入生成图像。我现在遇到的问题是我用来创建这些图像的类使用$ _GET来检索用户输入。用户输入看起来像urlencode($text),产生%21!等而不是角色。 urldecode()似乎没有做到这一点。

$text = isset(urldecode($_GET['text'])) ? $_GET['text']:'';

3 个答案:

答案 0 :(得分:3)

你将isset包裹在错误的东西上,

$text = isset($_GET['text']) ? urldecode($_GET['text']) : '';

答案 1 :(得分:1)

您没有将urldecode($_GET['text'])分配给$text变量。您正在检查是否已设置urldecode($_GET['text']),然后分配$_GET['text']

尝试

$text = isset($_GET['text']) ? urldecode($_GET['text']) : '';

答案 2 :(得分:1)

我认为urldecode($_GET['text'])有时可以采用NULL值,因此请先使用isset()来确定变量是否设置且不是NULL。如果你这样做:

$text = isset($_GET['text']) ? $_GET['text']:'';
$text = urldecode($text);

它会起作用。

<小时/> bool isset ( mixed $var [, mixed $... ] ):在这种情况下,$var是要检查的变量而不是值,因此您无法使用urldecode($_GET['text'])之类的值或isset()的字符串作为参数,包括empty()

非常感谢@Stano他的评论,他的代码很有用: