php 문자열 숨기기,문자 * 처리, 문자 자르기
오늘 작업하면서 만든코드입니다
mid부분 하는데 뇌 과부화
/***********************/
//왼쪽또는 오른쪽글자를 숫자만큼 잘라내고 *으로 바꿔서 표기하는 함수
//php 4.0.6 이상
//@str : 문자열 입력
//@cut_len : string 'harf' OR int 잘라낼 길이
//@type : right,left,mid 잘라낼방향
//@charset : 입력된문자열의 인코딩상황
//@star : 잘라낸 문자열을 대체할 기호
/***********************/
function string_star($str, $cut_len=3, $type='right', $star = "*"){
$length = mb_strlen($str,'UTF-8');
//* 변환할 길이가 문자길이보다 더 길다면 원본리턴
if($length < $cut_len) return $str;
if($cut_len=='harf') $cut_len = floor($length/2);
if($type=='right'){
$temp = substr($str, 0, $length - $cut_len);
for($i=0;$i<$cut_len;$i++){
$temp.= $star;
}
$ref = $temp;
}else if($type=='left'){
$temp = substr($str, $cut_len, $length - $cut_len);
$temp2 = "";
for($i=0;$i<$cut_len;$i++){
$temp2.= $star;
}
$ref = $temp2.$temp;
}else if($type=='mid'){
$harf = floor($length/2);//내림 (가운데점을 잡을수 없으면 앞쪽으로 한칸이동)
$harf_cut_len_1 = floor($cut_len/2);//내림
$harf_cut_len_2 = ceil($cut_len/2);//올림
$temp2 = "";
$temp_head = substr($str, 0, $harf-$harf_cut_len_1);
$temp_foot = substr($str, $harf+$harf_cut_len_2, $harf);
for($i=0;$i<$cut_len;$i++){
$temp2.= $star;
}
$ref = $temp_head.$temp2.$temp_foot;
}
return $ref;
}
사용 예
1. echo string_star('ABCDE',3,'right');
=> AB***
2. echo string_star(qkrrjsgh,2,'left');
=>**CDF
3. echo string_star(qkrrjsgh,2,'mid','@');
=>A@@DE
'웹프로그래밍 > PHP' 카테고리의 다른 글
PHP 실행시간 알아보기 (0) | 2016.05.20 |
---|---|
php 에서 pdf 만들기 (0) | 2014.07.31 |
php os, brower 체크 (0) | 2014.03.12 |
php 현재 폴더이름 알아내기 (0) | 2014.03.12 |
[php] 썸네일 작성시 주의할점. (0) | 2012.11.26 |