aaa라는 특정게시판에서 제목과 내용안에 있는 모든특수문자를 없애고 싶은데요
본문
UPDATE a SET
wr_subject = REGEXP_REPLACE(wr_subject, '[`~!#$%^&*|\\\'\";:\/?]', ''),
wr_content = REGEXP_REPLACE(wr_content , '[`~!#$%^&*|\\\'\";:\/?]', '')
이런방업으로 하면 된다고 하셔서 해봤는데 안없어지고
update g5_write_a set wr_subject = REGEXP_REPLACE(wr_subject, '■', ' '),
update g5_write_a set wr_subject = REGEXP_REPLACE(wr_subject, '■■', ' '),
이렇게 하나하나 하야 없어지는데 모든 특수문자를 한꺼번에 없앨수있는 방법은 없을까요?
알려주시면 감사드리겠습니다
답변 4
이렇게 하는건 어떠실까요?
UPDATE g5_write_a
SET wr_subject = REGEXP_REPLACE(wr_subject, '[^[:alnum:][:space:]]', ''),
wr_content = REGEXP_REPLACE(wr_content, '[^[:alnum:][:space:]]', '')
WHERE bo_table = 'aaa';
위의 SQL 문에서 bo_table = 'aaa' 부분은 해당 특정 게시판의 테이블 이름으로 변경해주어야 합니다. 위의 SQL 문은 wr_subject와 wr_content 필드에서 알파벳, 숫자, 공백을 제외한 나머지 문자를 모두 제거합니다.
정규 표현식 [[:alnum:]]은 알파벳과 숫자를, [[:space:]]는 공백을 나타냅니다. [^]는 해당 문자 패턴을 제외한 모든 문자를 의미합니다.
function test_함수명($string){
$text = preg_replace("/[ #\&\+\-%@=\/\\\:;,\.'\"\^`~\_|\!\?\*$#<>()\[\]\{\}]/i", "", $string);
return $text;
}
적용할곳에 함수를 만들어서 처리할곳에 해당 함수 적용해 처리해 주시면 되실겁니다.
안녕하세요
특수문자들을 모두 쓰지 않아 그럽니다.
/[\{\}\[\]\/?.,;:|\)*~`!^\-_+<>@\#$%&\\\=\(\'\"]/gi
이것을 쓰면 특수문자 전부 삭제 가능합니다.
도움이 되길!!!
일단 MySQL에서 데이터를 PHP변수에 저장하세요.
$contents 라고 하고,.
PHP에서 정규표현식을 사용합니다.
$result = preg_replace("/[\{\}\[\]\/?.,;:|\)*~`!^\-_+<>@\#$%&\\\=\(\'\"]/i", "", $contents);
MySQL에서도 정규표현식 사용가능하나 그 경우 쿼리실행시간이 상당히 길어짐을 고려해주세요.