正在从数据库中转义带有alt属性的字符串


Escaping a string from database that goes on alt attribute

这应该很容易,但我看不出这里缺少什么:

我有我的数据库,我想从中填充alt属性。

我的代码如下:

  <img src="admin/uploads/retouch/'.$list->thumbnail.'" class="thumb-image" alt="'.utf8_encode(addslashes($list->titulo)).'" />

碰巧在这种情况下,我数据库中"titulo"中的内容有",我在代码中得到了这个结果:

  <img ti!'""="" por="" ¡hazlo="" manos.="" en="" estÁ="" prestaciones="" tus="" mejorar="" alt="'" class="thumb-image" src="admin/uploads/retouch/noticia_default.png">

数据库中的句子是:"MEJORAR TUS PRESTACIONES ESTÁEN TUS MANOS.HAZLO POR TI!">

您应该使用htmlspecialchars而不是addslashes,并带有utf8选项!

alt="'.htmlspecialchars($list->titulo, ENT_QUOTES, 'UTF-8').'"

使用htmlentities或htmlspecialchar来转义标记属性中的字符串。

您需要使用PHP函数htmlspecialchar((来转义此类内容。

您应该对htmlentities进行编码,而不是添加斜杠:

alt="'.htmlentities($list->titulo, ENT_QUOTES, 'UTF-8').'"