2012-12-21 3 views
0

데이터베이스에 사용자가 제출 한 TeX 방정식을 저장할 계획입니다. 문제는 TeX이 \right과 같은 것을 가지고 있고 PHP가 개행 문자를 고려하는 것을 좋아한다는 것입니다.PHP에서 문자열의 이스케이프 구문 분석 방지하기

이 동작을 억제하는 방법이 있습니까? 나는 addslashespreg_replace\r\\r으로 시도했지만 어느 것도 효과가 없습니다.

편집 : 내가 얻을 것으로 예상하고있어 물건의 예 :

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

답변

2

PHP는 개행 문자로 \ 연구를 고려하는 것이 좋아.

아니요, PHP는 아닙니다.
이 방정식을 일반적인 방법으로 데이터베이스에 저장하면 문제가 없습니다.

당신은 단지 2 개 규칙을 따라야합니다 :

  1. 그것을하자 정말 사용자가 아닌 사용자의 PHP 파일에 하드 코딩 데이터를 제출했다.
  2. SQL 쿼리에 넣을 때 데이터를 올바르게 포맷해야합니다. 자세한 내용은 데이터베이스 설명서를 참조하십시오.
+0

Ok ... TeX 청크를 인쇄하고'\ {\ begin {array} {* {20} {c}}이 되려고합니다. {{a_ {11 }]} \ {{a_ {12}}} \ {{a_ {21}}} 및 {{a_ {22}}} \ end {array}} ight) \]' 권리가 누락되었습니다. 나는 여기에 뭔가를 놓치고있어 ... – Kyle

+0

json_encode에 파이핑하고 preg_replace와 함께 돌아 다니면 작동한다. 대답 해줘서 고마워! – Kyle