我正在开发一种工具,可以使用不同的字体选项从用户输入生成图像。我现在遇到的问题是我用来创建这些图像的类使用$ _GET来检索用户输入。用户输入看起来像urlencode($text)
,产生%21!等而不是角色。 urldecode()似乎没有做到这一点。
$text = isset(urldecode($_GET['text'])) ? $_GET['text']:'';
答案 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
他的评论,他的代码很有用: