2011年9月21日 星期三

php 取代 htmlspecialchars 函數 xml 中會用到.

取代 htmlspecialchars 函數 . 因為若是重複置換 & 每次都會被置換成 &amp; 所以 原本 < 變成 &lt; , 再經一次轉換就變成 &amp;lt; 在第二次就變成 &amp;amp;lt; function html_for_xml ($str){ $str = str_replace('<','&lt;',$str); $str = str_replace('>','&gt;',$str); $str = str_replace('"','&quot;',$str); $str = str_replace('\'','&#039;',$str); return preg_replace('/&(?!lt;|gt;|quot;|#039;|amp;)/eis','&amp;',$str); } 將&amp; 全部還原成 & 的 function function html_for_xml2 ($str){ $str = str_replace('&amp;','&',$str); if (stristr($str,"&amp;") != false) { $str = html_for_xml2($str); } return $str; }

【下列文章您可能也有興趣】

2 則留言:

匿名 提到...

$str can not contain 「&」 for function html_for_xml???

千江有水千江月 提到...

& had to convent &amp; .