▶ ✔ ✅ ?제목에 그림같은 특수문자 필터링?? 삭제방법.
▶ ✔ ✅ ?
제목에 영문,한글,숫자등만 들어갈수 있고 특수문자가 들어가지 않도록 설정되어있는데 요즘에 이런특수문자가 유난히 많이 늘어나고 있습니다. 이런 특수문자들은 걸러지지 않고 들어가는데 어떻게 해야 제목에 들어가지 않고 텍스트만 들어가게 할수 있을까요??
|
답변 2개 / 댓글 7개
2023-04-19 (수) 14:46:13
Copy
<?php
function validate_string($string) {
return preg_match('/^[\p{L}\p{N}]+$/u', $string);
}
영문(\p{L}), 숫자(\p{N}), 한글만으로 구성되어 있는지 확인하는 함수입니다.
답변에 대한 댓글 2개
2023-04-19 (수) 15:21:25
2023-04-19 (수) 15:22:17
값을 여기 댓글에도 넣으니까 sir에서도 바로 이미지로 바뀌네요. 띄어쓰기안한값이 본래 값입니다.
& # 1 2 8 3 0 8 ;
& # 1 1 0 9 3 ;
& # 6 5 0 3 9 ;
& # 1 2 8 3 0 8 ;
& # 1 0 0 3 6 ;
& # 1 2 8 9 9 4 ;
& # 1 2 8 3 0 8 ;
& # 1 1 0 9 3 ;
& # 6 5 0 3 9 ;
& # 1 2 8 3 0 8 ;
& # 1 0 0 3 6 ;
& # 1 2 8 9 9 4 ;
포인트적립
2023-04-19 (수) 14:39:19
예전에 쓰던 건데 응용하시면 되실듯?
Copy
// 한글, 숫자, 영문, 일문, 띄어쓰기, 하이픈만 포함된 문자열 추출
$str = "가나다라마바사 abcdfadlelfj ▶ ✔ ✅ ?";
$pattern = "/[^[:alnum:]\p{Hangul}\p{Latin}\p{Katakana}\p{Hiragana}[:space:]\-]/u";
$res_string = preg_replace($pattern, "", $str);
// 특문제거시 공백 2개이상 생길경우 공백 1개로 변경
$res_string = preg_replace('/\s+/', ' ', $res_string );
//res_string => 가나다라마바사 abcdfadlelfj
답변에 대한 댓글 5개
2023-04-19 (수) 15:17:06
🔴
⭕
️
🔴
✴
🟢
제목에 이런 이미지형태로 출력되는 게시글들의 DB에 저장된값을 보면 해당 이미지들이 해당내용들로 모두 들어가있습니다. 이런패턴의 값이 들어가지 않도록 필터링이 되도록 하려면 어떻게 해야할까요?
⭕
️
🔴
✴
🟢
제목에 이런 이미지형태로 출력되는 게시글들의 DB에 저장된값을 보면 해당 이미지들이 해당내용들로 모두 들어가있습니다. 이런패턴의 값이 들어가지 않도록 필터링이 되도록 하려면 어떻게 해야할까요?
2023-04-19 (수) 15:19:31
값을 여기 댓글에도 넣으니까 sir에서도 바로 이미지로 바뀌네요. 띄어쓰기안한값이 본래 값입니다.
& # 1 2 8 3 0 8 ;
& # 1 1 0 9 3 ;
& # 6 5 0 3 9 ;
& # 1 2 8 3 0 8 ;
& # 1 0 0 3 6 ;
& # 1 2 8 9 9 4 ;
& # 1 2 8 3 0 8 ;
& # 1 1 0 9 3 ;
& # 6 5 0 3 9 ;
& # 1 2 8 3 0 8 ;
& # 1 0 0 3 6 ;
& # 1 2 8 9 9 4 ;
포인트적립
2023-04-19 (수) 15:29:55
$str = preg_replace('/\d+;/', '', $str); // 이모지 아이콘 제거
이거 먼저 실행하고 다음에
$res_string = preg_replace($pattern, "", $str); 이거 순으로 하면 될거같은데요
이거 먼저 실행하고 다음에
$res_string = preg_replace($pattern, "", $str); 이거 순으로 하면 될거같은데요
2023-04-19 (수) 16:37:04
포인트적립님 도움주셔서 너무 감사합니다. 그런데 아래와 같이 해도 여전히 아직도 해당 이모티콘 코드가 필터링 안되고 들어갑니다.
$str_emo = preg_replace('/\d+;/', '', $write[wr_subject]);
$pattern = "/[^[:alnum:]\p{Hangul}\p{Latin}\p{Katakana}\p{Hiragana}[:space:]\-]/u";
$subject = preg_replace($pattern, "", $str_emo);
// 특문제거시 공백 2개이상 생길경우 공백 1개로 변경
$subject = preg_replace('/\s+/', ' ', $subject );
$subject = preg_replace("/\"/", """, get_text(cut_str($subject, 255), 0));
$str_emo = preg_replace('/\d+;/', '', $write[wr_subject]);
$pattern = "/[^[:alnum:]\p{Hangul}\p{Latin}\p{Katakana}\p{Hiragana}[:space:]\-]/u";
$subject = preg_replace($pattern, "", $str_emo);
// 특문제거시 공백 2개이상 생길경우 공백 1개로 변경
$subject = preg_replace('/\s+/', ' ', $subject );
$subject = preg_replace("/\"/", """, get_text(cut_str($subject, 255), 0));
포인트적립
2023-04-19 (수) 17:08:56
글 등록전 멈추게 한다음 echo로 제목을 먼저 확인하신다음에 치환처리 하시면 되실듯한데..
안되면 뭐 온갓 함수 가져다 활용해보는 방법밖에.. htmlspecialchars 활용해서 변환 한다든가...
글로만 설명하려니 어렵네용 ㅋ 성공하시길~~화이팅!
안되면 뭐 온갓 함수 가져다 활용해보는 방법밖에.. htmlspecialchars 활용해서 변환 한다든가...
글로만 설명하려니 어렵네용 ㅋ 성공하시길~~화이팅!
답변을 작성하려면 로그인이 필요합니다.
⭕
️
🔴
✴
🟢
제목에 이런 이미지형태로 출력되는 게시글들의 DB에 저장된값을 보면 해당 이미지들이 해당내용들로 모두 들어가있습니다. 이런패턴의 값이 들어가지 않도록 필터링이 되도록 하려면 어떻게 해야할까요?