大家写文章发布程序时,有没有试过标题写成:
跟着热心许大哥"玩“装修----收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 />';
?>

[1]
搜索"北京php培训",为什么不是“星模PHP培训”而是"石家庄PHP培训"排在第一呢?奇怪?SEO高手能解释一下吗?
今天搜索“php培训”和“PHP培训”,两个都是第一哈。

2009/01/24 22:54 | by 
