답변 2개
채택된 답변
+20 포인트
10년 전
한글과 영문을 구분 못하지 않나요?
제목 글자수를 다르게 구분하려다 방법을 못찾아 포기한...;;;
제목 글자수를 다르게 구분하려다 방법을 못찾아 포기한...;;;
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
10년 전
</p><p><?
$str = $_GET['nick'];
$str_com = preg_match("/[\xA1-\xFE][\xA1-\xFE]/", $str);
$len = mb_strlen($str, "UTF-8");
if($str_com == 1) {
if($len > 6) {
echo "한글은 여섯 자까지만";
}
} else {
if($len > 8) {
echo "영문은 여덟 자까지만";
}
}
?>
<form>
<input type="text" name="nick" id="nick" value="<?=$str?>" />
<input type="submit" value="submit" />
</form></p><p>
이렇게 하시면 되지 않을까요?
로그인 후 평가할 수 있습니다
답변에 대한 댓글 2개
�
10년 전
$kor = "테스트테스트테스트";
echo mb_strimwidth($kor, 0, 6, "", "UTF-8"); // 테스트
$eng = "testtesttest";
echo mb_strimwidth($eng, 0, 6, "", "UTF-8"); // testte
이거 응용해서 사용하셔도 될 겁니다.
주의하실 점은
mb_strimwidth(문자열, 시작, 끝, 끝에 붙일 말, 인코딩)
함수가 저렇게 생겼는데요, '끝에 붙일 말' 부분에 보통 '...'을 넣어서 사용하면 저 점 개수까지 포함해서 앞에 숫자에 영향을 미치네요.
echo mb_strimwidth($eng, 0, 6, "...", "UTF-8");
이렇게 하면 'tes...' 이렇게 나옵니다.
그래서 그냥 안 쓰시거나 혹은
echo mb_strimwidth($eng, 0, 6, "", "UTF-8")."...";
이렇게 편법으로 사용하시는 게 좋을 것 같습니다. ㅎㅎ
echo mb_strimwidth($kor, 0, 6, "", "UTF-8"); // 테스트
$eng = "testtesttest";
echo mb_strimwidth($eng, 0, 6, "", "UTF-8"); // testte
이거 응용해서 사용하셔도 될 겁니다.
주의하실 점은
mb_strimwidth(문자열, 시작, 끝, 끝에 붙일 말, 인코딩)
함수가 저렇게 생겼는데요, '끝에 붙일 말' 부분에 보통 '...'을 넣어서 사용하면 저 점 개수까지 포함해서 앞에 숫자에 영향을 미치네요.
echo mb_strimwidth($eng, 0, 6, "...", "UTF-8");
이렇게 하면 'tes...' 이렇게 나옵니다.
그래서 그냥 안 쓰시거나 혹은
echo mb_strimwidth($eng, 0, 6, "", "UTF-8")."...";
이렇게 편법으로 사용하시는 게 좋을 것 같습니다. ㅎㅎ
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
답변대기
채택
답변대기
답변대기
답변대기
답변대기
채택
채택
답변대기
답변대기
답변대기
채택