PHP中的引号回显破坏HTML值

时间:2012-05-25 21:26:47

标签: php mysql html

我有一个HTML表单值作为PHP函数:value='".$item->get_title()."'(这是在echo语句中因此单引号。)问题是,如果返回的标题包含任何引号,它会打破价值功能。

示例:value="Kim Dotcom lawyer blasts US government" s "pattern of delay &quote;'>

你可以看到它在government处中断。之后应该有一个撇号。

有没有人知道修复此问题?

修复: value='".htmlspecialchars($item->get_title(), ENT_QUOTES)."'

3 个答案:

答案 0 :(得分:3)

使用htmlspecialchars来转义不打算以HTML格式呈现的输出:

value="'.htmlspecialchars($item->get_title()).'"

默认情况下,htmlspecialchars仅转义双引号,而不是单引号。如果您想要同时转义(并保持将HTML值放在单引号中的做法),请将ENT_QUOTES作为第二个参数添加到htmlspecialchars

答案 1 :(得分:1)

尝试使用htmlspecialchars

htmlspecialchars($item->get_title());

答案 2 :(得分:-1)

尝试:

value='".str_replace('"', '', $item->get_title())."'