English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

PHP Version 4.4.1 MySQL 版本 3.23.59
$_POST[\"theme\"] = 預計新增加的功能sblog
$sblog_theme = str_replace(\"\\r\\n\",\"
\",$_POST[\"theme\"]);
$sblog_theme = addslashes($sblog_theme);
存入資料庫在po出來後
執行結果 => 預計新增加的功能sblog

PHP Version 4.3.8 MySQL 版本 4.0.20
$_POST[\"theme\"] = 預計新增加的功能sblog
$sblog_theme = str_replace(\"\\r\\n\",\"
\",$_POST[\"theme\"]);
$sblog_theme = addslashes($sblog_theme);
存入資料庫在po出來後
執行結果 => 預計新增加的功\\能sblog

如果不用addslashes
前者是會出現錯誤,但後者不會><
用了後前者正常,但後者在功和能會出現\" \\ \"這個符號= =
有沒有一致性的解決big5碼的問題
因為我想寫一個在各種版本都可以用的系統@@
或者是給我一些線索也行

2006-05-25 15:07:08 · 2 個解答 · 發問者 阿牛 1 in 電腦與網際網路 程式設計

2 個解答

解決方法有很多種
我最建議的解決方法
是 MySQL 版本在 4.1 版之前的 (不含 4.1)
採用舊式的 MySQL API
而新的版本的 MySQL 則採用 mysqli API (MySQL Improved API)
這樣就可以避開大部分的版本問題

然而如果你的環境必須強迫使用舊式 API 的話
那麼就建議你這麼做
要寫一個版本判斷的 if 敘述來和 4.1 版比較
4.1 版以前的中文字如果後碼含 0x5c (ex: 許 功 蓋 閱 .... 等等)
這些字元要做 addslash 處理
如果是 4.1 版以及更新的就不必了

強烈建議你使用新式的 API 這組 API 是物件導向的
並且支援交易行為和預先編譯程序
可以 "有效防止隱碼攻擊" "提升指令的執行效率" "減少多工衝突問題"
對你一定有好處的

2006-05-28 23:10:15 · answer #1 · answered by 小璋丸 5 · 0 0

真的很在意的話, 自己編碼再解碼, 在任何版本都會相容.

2006-05-27 16:25:33 · answer #2 · answered by ? 5 · 0 0

fedest.com, questions and answers