我正在开发一种工具,该工具可以从具有不同字体选项的用户输入中生成图像。我现在遇到的问题是我用来创建这些图像的类使用 $_GET 来检索用户输入。用户输入看起来像urlencode($text)
%21 for ! 等而不是字符。urldecode() 似乎没有奏效。
$text = isset(urldecode($_GET['text'])) ? $_GET['text']:'';
你在包装isset
错误的东西,
$text = isset($_GET['text']) ? urldecode($_GET['text']) : '';
您没有分配urldecode($_GET['text'])
给$text
变量。您正在检查是否urldecode($_GET['text'])
已设置,然后分配$_GET['text']
.
尝试
$text = isset($_GET['text']) ? urldecode($_GET['text']) : '';
我认为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
非常感谢他的评论,他的代码很有用: