2013-07-02 170 views
0

我有textarea,我將它存儲在mysql中。
下面的一些特殊的時候我最多MySQL和加載到我區的工作很好地上傳到MySQLPHP - 將所有特殊字符替換爲正確的顯示

[email protected]#$%^&*()_+-=~<>?{}[]|*-+/:;.,"` 

(進)字完成,但不會重新加載。我嘗試用

str_replace("\n", "\\n",$string); 

重新加載並運行良好

當我直到MySQL以下字符一些特殊的工作不

\' 

我試着鍵入雙重性格上面它的工作上傳到mysql但不能重新加載

typing '' to mysql ' but i want typing ' to mysql ' 

我如何使用上面的一些錯誤字符(up和reload)以最佳方式工作。感謝


更新我的方式
當我直到MySQL我使用

addslashes($string) 

,當我重裝我用

str_replace("\n", "\\n",addslashes($string)) 

它與我的情況下,感謝所有

+0

請顯示您的代碼。 – sectus

+0

@sectus我只是更新我的解決方案,謝謝你:) – freestyle

回答

0
完成

使用ENT_QUOTES嘗試htmlentities

另外,「\ n」是一個字符。你必須用你的代碼替換它。但是,您也必須在保存時進行轉換。

+0

請看我的編輯問題。對我的前問題感到抱歉 – freestyle

0

http://www.php.net/manual/en/function.htmlentities.php

echo htmlentities($str, ENT_QUOTES); 

可能會奏效,但受到MySQL的逃避,所以可能更好的解決方案

http://www.php.net/manual/en/info.configuration.php#ini.magic-quotes-gpc

/.htaccess 
php_value magic_quotes_gpc off 

將防止PHP自動添加斜線,可以再加入他們在SQL與

mysql_real_escape_string() 

在SQL語句中

和在讀[爲文本框]與

stripslashes() 

http://www.php.net/manual/en/function.stripslashes.php

在DIV顯示刪除它們,你不得不ヶ輛()以上

的解釋
+0

不要告訴mysql_ *任何東西。 – sectus

+0

@Dany博伊文對不起,請看到我的編輯問題:) – freestyle

+0

@sectus他的問題是mysql有關:'下面的一些特殊的時候我最多MySQL和加載到我區working'簡單地解決實體部分/逃逸是一個很懶惰的方法。告訴他他們是如何到達那裏的,然後他可以找出如何最好地理解整個過程。 –