再回头说我们今天定位的问题代码行:
- $v1['name'] = htmlspecialchars(strip_tags($v1['name']),ENT_QUOTES);
关于这里面的htmlspecialchars()函数,在
16楼有提到,但稍微有点差别,是pwHtmlspecialchars()名称。文件里面还有另外一个函数pwHtmlspecialchars_decode(),注释是这么说的:“类似htmlspecialchars_decode函数,因为htmlspecialchars_decode只在PHP 5.1版本及以上才存在”。17楼也说了:
看到第二行注释很兴奋,可php5.1版本,无论是本地,还是服务器都比它高啊。就像函数名称一样,看里面的代码,它只是处理特殊字符的,转义字符的替换。白高兴了。
既然都高于5.1版本,那就应该用“Htmlspecialchars_decode”啊!

只是当时认为这个函数只是处理字符串的,谁也没想到最后竟然真的跟处理字符串的函数有关。
当时挺高兴的,可看到注释认为自己白高兴了。可这次的真相似乎真的离自己好近好近,那差那么一点点。下面我们继续测试吧。首先恢复,不对,是直接修改代码里处理字符串的函数,加上“_decode”,用htmlspecialchars_decode()函数处理字符串,说不定只需要添加几个字符,就能解决困扰了我们许久的麻烦。期待吧!