我正在开发一种工具,该工具可以从具有不同字体选项的用户输入中生成图像。我现在遇到的问题是我用来创建这些图像的类使用 $_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非常感谢他的评论,他的代码很有用: