转自:http://blogread.cn/it/article/345?f=sa
大家写文章发布程序时,有没有试过标题写成:
跟着热心许大哥"玩“装修----收abc\'房篇<牛阳他奶奶的装修日记>
然后修改这篇文章?看看是否有问题?
如果有问题,你可以将标题使用htmlspecialchars()函数进行转码,再写入数据库:
以下是代码片段: $title = htmlspecialchars($_POST[’title’], ENT_QUOTES); |
以下是引用片段: htmlspecialchars() 将&转换成& 将<转换成< 将>转换成> 将"转换成" 将’转换成' |
如果htmlspecialchars()有了第二个参数,第二参数为ENT_NOQUOTES时,"和'将都不被转换。第二个参数为ENT_QUOTES时,"和'都将被转换。
如果没有第二个参数,"将得到转换,'不会得到转换。
推荐加上第二个参数,并将第二个参数设置为ENT_QUOTES,使"和'都被转换。
htmlentities是将所有的html代码都做转换。实际测试了一下,htmlentities()将所有的汉字也进行了转换。
大家可以运行下面的代码测试并研究一下:
以下是代码片段: <?php $subject = htmlspecialchars(’跟着热心许大哥"玩“装修----收abc\’房篇<牛阳他奶奶的装修日记>’, ENT_QUOTES).’111’; echo $subject; echo ’<br />’; $str = ’<a href="http://www.xiaofeicn.com/article.php?id=9237" title="’.$subject.’" target="_blank">’.$subject.’</a>’; echo $str; echo ’<br />’; $subject = htmlentities(’跟着热心许大哥"玩“装修----收abc\’房篇<牛阳他奶奶的装修日记>’).’222’; echo $subject; echo ’<br />’; $str = ’<a href="http://www.xiaofeicn.com/article.php?id=9237" title="’.$subject.’" target="_blank">’.$subject.’</a>’; echo $str; echo ’<br />’; ?> |