最近在寫bbs中,遇上代碼轉(zhuǎn)換問題。尋找了很久,才得到一個比較完善的解決辦法,可以徹底還原發(fā)文者的原文。 以下貼出,供大家指正。 系統(tǒng):linux+php4+oracle8i
<? //--標(biāo)題,名字等字段入庫處理(去首尾空格) function trans_string_trim($str) { $str=trim($str); $str=eregi_replace("'","''",$str); $str=stripslashes($str); return $str; }
//--文章入庫處理,即textarea字段; function trans_string($str) { $str=eregi_replace("'","''",$str); $str=stripslashes($str); return $str; }
//--從庫中顯示在表單中;在text中以trans轉(zhuǎn)換,在textarea中,無需轉(zhuǎn)換,直接顯示
//--顯示在WEB頁面,過濾HTML代碼;包括鏈接地址 function trans($string) { $string=htmlspecialchars($string); $string=ereg_replace(chr(10),"<br>",$string); $string=ereg_replace(chr(32)," ",$string); return $string; }
//--顯示在WEB頁面,不過濾HTML代碼; function trans_web($string) { $string=ereg_replace(chr(10),"<br>",$string); $string=ereg_replace(chr(32)," ",$string); return $string; }
//--顯示在WEB頁面,過濾HTML代碼及頭尾空格,主要用于顯示用戶昵稱 function trans_trim($string) { $string=trim($string); $string=htmlspecialchars($string); $string=ereg_replace(chr(10),"<br>",$string); $string=ereg_replace(chr(32)," ",$string); return $string; }
//--顯示在span中; function trans_span($string) { $string=ereg_replace(chr(10),"\n",$string); $string=ereg_replace(chr(32)," ",$string); $string=ereg_replace('"',""",$string); return $string; }
//--在WEB上顯示cookie,過濾html function trans_cookie($str) { $str=trans($str); $str=stripslashes($str); $str=eregi_replace("''","'",$str); return $str; } ?> --------------------------- 最后,順帶補充一點,如果在span中顯示文章中的一段,采用substr取定長字符串時,記得在span的參數(shù)后面多加一個空格,否則遇上截到半個漢字時,會搞亂html代碼。
|