2013-08-18 2 views
0

'\ n'이 많은 주석이있는 데이터베이스가 있습니다. '\ n'(보기 측면)의 모든 주석을 정리하는 함수를 만듭니다. 그것은 잘 작동하지만 여전히 \ n을 사용하는 일부 사용자가 내 기능을 기울이지 않아 그것을 청소하십시오. 이상한 것은 내가 DB에서 그들의 코멘트를 복사하고 내 사이트에서 지나면 내 기능이 잘 작동하고 깨끗해진다 '\ n'. DB 및 지난 사용자의 설명에서 내 의견을 편집하면 기능이 작동하지 않습니다. 나는 무엇을 해야할지 모르겠다. 나는 "mysql replace"를 select 쿼리에서 사용하려고 시도했으나 작동하지 않았다. 또 다른 이상한 점은 phpMyAdmin에서 select replace를 사용할 때 작동한다는 것입니다. 저를 도와주세요 ..문자열에서 ' n'을 모두 지 웁니다. - php

내 기능 :

function cleanComments($text){ 

    return stripslashes(str_replace("\\n", ". ",htmlspecialchars($text))); 
} 

내 SQL 쿼리 :

SELECT REPLACE(comment_text, '\\n', '.'),date... 

사람이 의견 깨끗 \ n을 (문자열)없이 DB에을 변경하는 방법을 모른다?

답변

1

은, 줄 바꿈이 \r\n입니다. 대부분의 사용자는 Windows를 사용하기 때문에 \n을 제거하는 것만으로는 부족한 이유가 설명됩니다.

이제는 제거하려고하는 실제 줄 바꿈 문자 또는 리터럴 "백 슬래시 n"입니까? 그것은 리터럴의 경우,

str_replace(["\n","\r"],"",$text); 

다음 해당 백 슬래시를 두 번 : 그것은 실제 개행의 경우에, 당신은 뭔가를해야한다.

+0

이다. 백 슬래시를 두 배로한다는 것은 무엇을 의미합니까? like .. \\ n? – Dennis

+0

내가 혼란 스러웠던 이유는 문자열에서'$ text = json_encode ($ text)'를하고'\ n'과'\ t'을 얻는다면, 내가하려고 할 때 하나의 quoutes를 사용해야한다는 것입니다. find ""\ n "'실제로 무엇을하고 있었는지는 개행을 찾으려고하지만 문자열에 새로운 줄이 없었습니다. 조심해. –

2

당신이 \n하지 \\n

function cleanComments($text){ 

    return stripslashes(str_replace("\n", ". ",htmlspecialchars($text))); 
} 

"\n" 새로운 라인을 의미하기 때문입니다 "\\n""\n" 문자열을 의미를 사용해야합니다;
예 :

echo "\n";

결과 : 새로운 라인

echo "\\n";

결과 : \ n Windows에서

+0

왜? 그것은 보통 '\ n'에서 작동합니다. 특별한 이유가 있습니까? – Dennis

+0

''\ n "'은 줄 바꾸기를 의미하기 때문에''\\ n" "은 문자열을 의미합니다 :'"\ n "';
'에코 "\ n";'결과 : 새로운 라인
'에코 "\\ n은";'결과 : \ n

+0

내가 문자열을 제거하려면 '\ n'을 내 의견에서. 나는 많은 "\ n"이있는 주석을 가지고있다. \ n과 함께 주석을 본다는 것은 문자 적으로 – Dennis

관련 문제