如何转义PHP的http_build_query?

How to escape PHP's http_build_query?

我很困惑如何转义这行 PHP 代码:

<p><a href=/foobar.php?<?php echo http_build_query(array("ic" => "123", "address" => "12 Hill Street", "name" => "John Doe" )); ?>>Testing</a></p>

urlencode 使验证通过,但 $_GET 请求变得混乱。 htmlspecialchars 不对等号进行编码。我错过了什么?

Quote 您的 HTML 属性,HTML-对值进行编码:

<p><a href="/foobar.php?<?php echo htmlspecialchars(http_build_query(...)); ?>">Testing</a></p>
           ^                                                                  ^

解析器无法正确找到属性值的结尾,除非您将其引用。