我试图包含一个字符串变量作为锚标记的标题,所以当用户将鼠标悬停在链接上时,他们会看到文本。文本可以包含单引号或双引号,也可以不包含,并且来自mysql表列。
代码如下:
echo '<a title="'.$classRow['Description'].'">'.$classRow['LongName'].'</a>';
如果$classRow['Description']
是:
在这节课上,我们将看一部电影。
但是如果$classRow['Description']
是:
这节课,我们将看电影《少年派的奇幻漂流》。
我尝试使用addslashes($classRow['Description']),但这只是显示斜杠;一旦到达双引号,文本仍然被截断。
应该可以了,
$classRow['Description'] = 'In this class, we''ll watch the movie "Life of Pi."';
echo '<a title="'.htmlspecialchars($classRow['Description'], ENT_QUOTES) .'">' .$classRow['LongName'].'</a>';
PHP Demo: http://sandbox.onlinephpfunctions.com/code/dadb94a797a74cc7fd8c078ca49d8840ddaeb0b3
功能页面:http://php.net/manual/en/function.htmlspecialchars.php
还请注意,您正在经历的行为不是数据被截断,字符串中的"
正在关闭属性,然后将字符串的其余部分读取为属性。
请注意,恶意用户可以用同样的方式修改元素,所以当输出用户提供的输入时,您也应该使用此函数。