2009-09-01 7 views
0

mysql_real_escape_string()을 사용하여 데이터베이스에 데이터를 저장 했으므로 작은 따옴표는 '처럼 이스케이프 처리됩니다. 브라우저에서 괜찮아 보이지만 txt 파일에 텍스트를 저장할 때 어떻게 다시 작은 따옴표로 변환 할 수 있습니까?이스케이프 처리 된 문자 되돌리기

+0

입니까? 단순히 문자열 대체 함수를 호출하여'& # 39'를'''로 대체 할 수 있어야합니다. –

+0

PHP에서. 나는 똑같은 생각을하고 있었다. 나는 이렇게 할거야. – Psyche

답변

4

에게있어 유의하시기 바랍니다 당신이 스크립트 어딘가에 htmlentities()에 대한 호출이 있어야합니다 그래서 mysql_real_escape_string() 않습니다 하지 차례 아포스트로피 ' 만 HTML 중심의 기능으로 '는 않습니다. 귀하의 질문에 관해서는

, 당신이 찾고있는 기능은 어떤 언어로 html_entity_decode()

echo html_entity_decode(''', ENT_QUOTES); 
2

이렇게하면 인코딩 된 텍스트를 데이터베이스에 저장하면 안됩니다. 원래 형식으로 저장하고 표시 할 때 인코딩해야합니다.

이제 함수가 인코딩하는 문자를 확인하고 역순으로 다시 변환하는 문자열 바꾸기를 작성해야합니다.

의사 코드 예제 :

s = Replace(s, "'", "'") 
s = Replace(s, "&lt;", "<") 
s = Replace(s, "&gt;", ">") 
s = Replace(s, "&amp;", "&") 
-1

" '"단지 아스키 값, 사용 CHR는 다시 문자를 얻을 수 있습니다. 여기에 코드

$string = "Hello &#39; Man"; 
$string = preg_replace('|&#(\d{1,3});|e', 'chr(\1)', $string); 
echo $string; # Hello ' Man 
관련 문제