2012-12-21 52 views
0

我打算將大量用戶提交的TeX方程存儲在數據庫中。問題是,TeX有像\right這樣的東西......而PHP喜歡把\ r作爲一個換行符。防止PHP解析字符串中的轉義字符

有什麼辦法可以抑制這種行爲嗎?我試過addslashespreg_replace\r\\r,但都沒有解決。

編輯:我期待得到的東西,舉個例子:

\[\left({\begin{array}{*{20}{c}} 
    {{a_{11}}}&{{a_{12}}} \\ 
    {{a_{21}}}&{{a_{22}}} 
\end{array}} \right)\] 

回答

2

PHP喜歡考慮\ R作爲一個換行符。

不,PHP沒有。
只需將這些方程以常規方式存儲在數據庫中即可,應該沒有問題。

你只需要按照規則2:

  1. 讓它成爲一個真正用戶提交的數據,在你的PHP文件中沒有硬編碼。
  2. 當放入SQL查詢時,數據必須爲此正確格式化。有關詳細信息,請參閱數據庫手冊。
+0

好的......嘗試打印()TeX塊並得到'\ [\ left({\ begin {array} {* {20} {c}} {{a_ {11 }}} {{a_ {12}}} \ {{a_ {21}}}&{{a_ {22}}} \ end {array}} ight)\]' - \ r in \權利缺失。我在這裏錯過了一些東西...... – Kyle

+0

將它變成json_encode,並用preg_replace打開它讓它工作。謝謝回答! – Kyle