Replace-last-4-characters-with-asteriks-in-php

[PHP] 끝의 세 글자를 별표로 바꾸기

PHP를 사용하여 끝의 세 글자를 별표로 처리하는 방법

이전 글에서 이름의 첫 글자와 마지막 글자만 표시되도록 하는 방법을 살펴보았습니다. 이와 비슷한 연장선상에서 제목이나 회사 이름 등에서 끝의 몇 글자(예: 세 글자)만을 별표(*) 처리하는 방법에 대해 살펴보겠습니다.

문의 폼 등에서 의뢰인이 글을 올릴 때 전체 회사명이나 특정 정보가 그대로 노출되는 것을 원치 않는 경우가 있습니다. 이 경우 아래와 같은 코드를 사용하여 첫 몇 글자(아래에서는 3글자)만 표시되고 나머지는 ***로 대체할 수 있습니다.

$strim = mb_strimwidth($company, '0', '3', '***', 'utf-8');

또는 좀더 정교하게 하려면 다음과 같은 코드를 응용할 수 있습니다.

mb_substr($company,0,1).str_repeat('*',$len-2).mb_substr($company,-1,1);

이 코드를 적용하면 첫 글자와 마지막 글자만 표시되고 나머지는 글자 수에 따라 *로 대체됩니다. 글자 길이를 체크하여 글자 길이가 3자 이상일 때 적용하면 좋을 듯 합니다.

실전에서 대충 위와 비슷한 방식으로 앞의 몇 글자만 노출되도록 처리했습니다. 하지만 작업이 끝난 지 약간 시간이 지나 클라이언트로부터 연락이 와서 뒤의 몇 글자만 별표 처리해달라고 부탁하네요. 그래서 mb_substr을 사용하여 다음과 같이 하여 테스트해보았습니다.

$strim = mb_substr($company, '0', -3) . "***";

mb_strlen을 사용하여 글자 수 체크를 하여 일정 글자 길이 이상일 경우에만 코드가 적용되도록 하면 좋을 듯 합니다. 위의 코드가 문법적으로 정확한지 확실히 모르겠지만 작동은 잘 합니다. 혹시 문법적으로 올바르지 않다면 아래 댓글로 알려주시면 수정하도록 하겠습니다.

Replace-last-4-characters-with-asteriks-in-php

그림은 위의 코드를 조금 응용하여 워드프레스 게시판 플러그인인 KBoard에 적용한 경우입니다. 글 제목을 특정 길이 이상일 때 글자 수를 제한하고 끝 부분을 말줄임 기호(…)로 대체했습니다. 상황에 따라 다양하게 응용할 수 있을 것입니다.

참고: 만약 한글을 고려할 필요가 없이 영문이나 숫자에만 적용하는 경우에는 substr을 사용하면 됩니다.

substr($company, 0, -3) . "***";

위의 코드를 적절히 응용하시기 바랍니다(참고).

떠나시기 전에 아무 댓글(Comments)이라도 남겨두세요.
기부를 통해 이 블로그의 운영을 후원하실 수 있습니다.