0

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

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

4

3 回答 3

3

你在包装isset错误的东西,

$text = isset($_GET['text']) ? urldecode($_GET['text']) : '';
于 2013-08-04T13:45:54.517 回答
1

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

尝试

$text = isset($_GET['text']) ? urldecode($_GET['text']) : '';
于 2013-08-04T13:47:18.253 回答
1

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

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

它会起作用的。


bool isset ( mixed $var [, mixed $... ] ):在这种情况下,$var是要检查的变量而不是值,所以你不能使用像urldecode($_GET['text'])或字符串这样的值isset()作为参数,包括empty()

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

于 2013-08-04T15:07:59.790 回答