使用htmlspecialchars动态标题作为简码的参数

问题描述

我使用帖子标题作为简码参数,但是当页面标题中包含&时,它不能完全正常工作。 “通信与媒体协调员”。

我正在尝试做htmlspecialchars,但它仍然仅输出“通讯”。

$jobtitlestr = htmlspecialchars($jobtitle);

echo do_shortcode('[gravityform id="1" field_values="job_title=' . $jobtitlestr . '&job_location=' . $locationtitle . '&list_count='" ajax="true" tabindex="1"]');

谢谢

解决方法

假设此短代码是GET查询的一部分,则'&'用作词条之间的分隔符,并说明为什么标题被截断。

在PHP中,htmlspecialchars将某些字符转换为等效的HTML实体。 “&”字符将变为“&”因此,如果您将其用作URI的一部分,仍然会出现问题。

我怀疑您需要的功能是urlencode。您也必须通过另一端的urldecode运行它。

https://www.php.net/manual/en/function.urlencode.php