본문 바로가기

Programing (프로그래밍)/PHP 및 그누보드

PHP - 문자열 길이 자르기 문자 갯수 추출하기 제거하기 삭제하기 없애기 치환 변환 바꾸기 변경 교환 특정 문자 존재 유무 pattern PHP_EOL 줄바꿈 패턴 검색 preg_grep 정규식 구분자 배열 explode implod..

728x90
반응형

 

PHP - 문자열 길이 자르기 문자 갯수 추출하기 제거하기 삭제하기 없애기 치환 변환 바꾸기 변경 교환 특정 문자 존재 유무 pattern 패턴 검색 PHP_EOL 줄바꿈 preg_grep 정규식 구분자 배열 explode implode string strlen substr stripos strpos stristr strstr str_ireplace str_replace 포함여부

 

# 문자열 길이 / 문자 갯수 확인

1
2
$str = "123456789";
$strLen = strlen($str);
cs

 

# 정수 나눗셈 몫과 나머지

1
2
3
4
$x = 50;
$y = 3;
echo "몫 : " .intval($x / 3);
echo " / 나머지 : " .($x % 3);
cs


# 문자열 잘라내기 (없애기, 제거하기, 삭제하기)
// 잘라내기 (위치 기준) - 앞에서 3글자 제거하기

1
2
3
$str = "123456789";
$var = substr($str3);    // 456789
 
cs

 

// 잘라내기 (위치 기준) - 끝에서 3글자 제거하기

1
2
3
$str = "123456789";
$var = substr($str0-3);    // 123456
 
cs

 

# 소문자를 대문자로 변환하기 ( 대소문자 치환 )

1
2
3
$str = "abcDefGhIJClmn";
echo "소문자를 대문자로 변환하기 (치환)" .strtoupper($str);
 
cs

 

# 대문자를 소문자로 변환하기 ( 대소문자 치환 )

1
2
3
$str = "abcDefGhIJClmn";
echo "대문자를 소문자로 변환하기 (치환)" .strtolower($str);
 
cs

 

# 2글자마다 자르기

1
2
3
4
5
6
7
8
9
10
11
$str = "abcdefghijklmnopqrstuvwxyz";
$len = 2;    // 자를 글자 수
$i = 0;
$strSUM = "";
while(substr($str,$i,$len!= "")
{
     $strSUM = $strSUM .substr($str,$i,$len) ."-";
     $i = $i + $len;
}
echo $strSUM;
 
cs

/*

ab-cd-ef-gh-ij-kl-mn-op-qr-st-uv-wx-yz-

*/

 

# 문자열 추출하기

// 추출하기 (위치 기준) - 시작에서 3글자 (앞에서부터 앞부터 맨앞부터)

1
2
3
$str = "123456789";
$val = substr($str03); // 123

cs

 

// 추출하기 (위치 기준) - 3부터 5글자

1
2
3
$str = "123456789";
$val = substr($str35);  // 45678
 
cs

 

// 추출하기 (위치 기준) - 끝에서 3 자리 (끝에서부터 끝부터 맨끝부터)

1
2
3
4
$str = "123456789";
$val = substr($str-3);    // 789
 
cs

 

// 추출하기 (문자 기준) - 시작 ~ A(제외) 까지

1
2
3
4
$str = "123456789";
$val = stristr($str"3"true);    // 12
// * 대소문자 구분시 stristr 대신 strstr 를 사용
 
cs

 

 

// 추출하기 (문자 기준) - A(포함) ~ 끝 까지

1
2
3
4
$str = "123456789";
$val = stristr($str"3"false);    // 3456789
// * 대소문자 구분시 stristr 대신 strstr 를 사용
 
cs

 

// 추출하기 (문자 기준) - A(포함) ~ B(제외) 까지

1
2
3
4
5
6
7
$str = "123456789";
$searchA = "34";
$searchB = "78";
$stripos_start = stripos($str$searchA);
$stripos_end = stripos($str$searchB);
$val = substr($str$stripos_start$stripos_end - $stripos_start);    // val = 3456
// * 대소문자 구분 시 stripos 대신 strpos 를 사용
 
cs

// 추출하기 (문자 기준) - A(제외) ~ B(제외) 까지

1
2
3
4
5
6
7
$str = "123456789";
$searchA = "34";
$searchB = "78";
$stripos_start = stripos($str$searchA);
$stripos_end = stripos($str$searchB);
$val = substr($str$stripos_start + strlen($searchA)$stripos_end - $stripos_start - strlen($searchB));    // val = 56
// * 대소문자 구분 시 stripos 대신 strpos 를 사용
 
cs

 

// 추출하기 (문자 기준) - A(포함) ~ B(포함) 까지

1
2
3
4
5
6
7
$str = "123456789";
$searchA = "34";
$searchB = "78";
$stripos_start = stripos($str$searchA);
$stripos_end = stripos($str$searchB+ iconv_strlen($searchB);
$val = substr($str$stripos_start$stripos_end - $stripos_start);    // val = 345678
// * 대소문자 구분하지 않을 시 stripos 대신 strpos 를 사용
cs

 

# 문자열 치환하기 ( 변환하기, 바꾸기, 변경하기 )
// 특정 문자 치환하기(변환하기, 바꾸기, 변경하기)

1
2
3
4
$str = "123456789";
$val = str_ireplace("5""0"$str);    // 123406789
// * 대소문자 구분 시 str_ireplace 대신 str_replace 를 사용
 
cs

 

# 특정 문자 존재 유무 확인 ( 포함여부 )

// 방법1 ( 있다면 )

1
2
3
4
5
6
7
$str = "123456789";
if (stripos($str,"56"!== false)
    // 특정 문자 존재 시 (포함)
}
// * 대소문자 구분 시 stripos 대신 strpos 를 사용
 
cs

 

// 방법2 ( 없다면 )

1
2
3
4
5
6
7
$str = "123456789";
if (stripos($str,"01"=== false)
     // 특정 문자 존재하지 않을 시 (미포함)
}
// * 대소문자 구분 시 stripos 대신 strpos 를 사용
 
cs

 

# 특정 문자 존재 유무 확인 - 배열 ( arr / array )

1
2
3
4
5
$strArr = ["123""456""789"];
if (in_array($search"1"))
{
    // 특정 문자가 배열에 존재 한다면...
}    // 결과 : 존재하지 않음
cs

 

# 특정 문자 존재 유무 확인(pattern 패턴 검색) - 배열 (대소문자 구분없음)

1
2
3
4
5
6
$strArr = ["aBc""DeF""gHi"];
$search = "/h/i";    // preg_grep 정규식 pattern 검색, /i 는 대소문자 구분 안함
if (preg_grep($search$strArr))
    // 특정 문자가 배열에 존재 한다면... (pattern 검색);
}    // 결과 : 배열NO
cs

 

# 문자열 구분자로 자르기 (배열에 넣기)

// 문자열 구분자로 자르기 (배열에 넣기) - 대소문자 구분

1
2
3
4
$str = "2020-01-20";
$strArr = explode("-"$str);
// $strArr[0] = 2020, $strArr[1] = 01, $strArr[2] = 20;
 
cs

 

// 문자열 구분자로 자르기 (배열에 넣기) - 대소문자 구분 없음

1
2
3
4
$str = "A VS B Vs C vS D vs E";
$str = str_ireplace("VS","vs",$str);    // 찾을 문자열을 소문자로 치환
$strArr = explode("vs"$str);    // $strArr[0] = A, $strArr[1] = B, $strArr[2] = C, $strArr[3] = D, $strArr[4] = E;
 
cs

 

# 배열에 사이에 연결문자넣기, 배열을 문자열로 표현하기

1
2
3
$strArr = ["123""456""789"];
echo $val = implode("-"$strArr) ."<br>";    // val = 123-456-789
 
cs

 

# 라인, 구분자로 배열에 넣기 ( 엔터, 줄바꿈, PHP_EOL, \r\n )

1
2
3
4
5
6
7
8
9
10
11
12
$str = "ab|cd|ef
gh|ij|kl|
mn|op";
$arrLine = explode(PHP_EOL, $str);
foreach($arrLine as $arr)
{
    $arrData = explode("|"$arr);
    echo "AAA : " .$arrData[0] ."<br>";
    echo "BBB : " .$arrData[1] ."<br>";
    echo "CCC : " .$arrData[2] ."<br>";
}
 
cs

 

# 변수값의 존재 유무

1
2
3
4
5
6
7
8
9
10
$is = "";  // if : false, empty : Ture, isset : Ture
$x = 0;  // if : false, empty : Ture, isset : Ture
$y = 1;  // if : false, empty : false, isset : Ture
$z;  // if : false, empty : Ture, isset : false
$null = null// if : false, empty : Ture, isset : false
 
if(isset($null))  echo "isset" ." / ";
if(empty($null))  echo "empty" ."<br>";
if($nullecho "if" ."<br>";
 
cs

 

# 제로패딩 zeropadding 자리수 맞추기 자릿수

1
2
3
4
5
$str = "123";
echo "제로패딩1 : " .str_pad($str10"0") ."<br>";
echo "제로패딩2 : " .str_pad($str10"0", STR_PAD_LEFT) ."<br>";
echo "제로패딩3 : " .str_pad($str10"0", STR_PAD_BOTH) ."<br>";
 
cs

/* 

제로패딩1 : 1230000000
제로패딩2 : 0000000123
제로패딩3 : 0001230000

*/

 

# 소수점 이하 표기하기

1
2
3
echo number_format(123.4560008) ."<br>";
echo number_format(123.4560006) ."<br>";
 
cs

/*

123.45600000
123.456000

*/

 

 

# 형변환
// integer 숫자를  string 문자로

1
2
3
$str = "1";
$int = strval($str);
 
cs

 

// string 문자를 integer 숫자로

1
2
3
4
<?
$int = 1;
$str = intval($int);
?>
cs

 

# 특정문자 갯수세기 + index 위치 찾기 + 특정문자 마지막 index 위치 찾기 - for문

1
2
3
4
5
6
7
8
9
10
11
12
13
$str = "123-45-6-789";
$indexArr = [];
$index = -1;
for($i = 0 ; $i < strlen($str); $i++)
{
  $index = stripos($str'-'$index +1 );
  if($index === falsebreak;
  $indexArr[] = $index;
}
echo implode("|"$indexArr) ."<br>";
echo count($indexArr) ."개 <br>";
echo "맨 마지막 위치 :" .$indexArr[count($indexArr-1];
 
cs

 

# 특정문자 갯수세기 + index 위치 찾기 + 특정문자 마지막 index 위치 찾기 - while 문

1
2
3
4
5
6
7
8
9
10
11
12
$str = "123-45-6-789";
$indexArr = [];
$index = -1;
while($index)
{
  $index = stripos($str'-'$index +1 );
  if($index !== false$indexArr[] = $index;  
}
echo implode("|"$indexArr) ."<br>";
echo count($indexArr) ."개 <br>";
echo "맨 마지막 위치 :" .$indexArr[count($indexArr-1];
 
cs

 

# 현재시각 현재시간 표현하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 현재시각
echo date("Y-m-d H:i:s",time()) ."<br>";    // 2022-06-13 22:43:06
 
echo "년 : " .date("Y / y",time()) ."<br>";    // 2022 / 22
echo "월 : " .date("F / M / m / n",time()) ."<br>";    // June / Jun / 06 / 6
echo "일 : " .date("d / j",time()) ."<br>";    // 13 / 13 (j는 0 빼고 표시)
echo "요일 : " .date("D / l / w ",time()) ."<br>";    // Mon / Monday / 1 (일요일 0)
 
echo "시 : " .date("H / G / h / g",time()) ."<br>";    // 22 / 22 / 10 / 10 ( H : 00~24, G : 0~24, h : 01~12, g : 1~12 ) 
echo "분 : " .date("i",time()) ."<br>";    // 43
echo "초 : " .date("s",time()) ."<br>";    // 06
 
echo "윤년여부 : " .date("L",time()) ."<br>";    // 0
echo "해당 월의 총 날짜 : " .date("t",time()) ."<br>";    // 30 ( 28일,30일,31일 )
echo "GMT 1970년 1월1일 00:00:00 기준 지난 시간을 초로 환산 : " .date("U",time()) ."<br>";
echo "365일 : " .date("z",time()) ."일<br>";
echo date("S",time()) ."<br>";    // 2022-06-13 22:18:02
$datetime1 = new DateTime('2022-06-13 22:18:02');
$datetime2 = new DateTime('2022-06-12 21:16:01');
$interval = date_diff($datetime1$datetime2);
 
echo $interval->format('%y년 %m개월 %d일 %h시 %i분 %s초') . "<br>"// 10년 10개월 11일
echo $interval->days ."총 일";
echo $diff_day;
echo $interval->h ."시간 " .$interval->i ."분 " .$interval->s ."초<br>";
 
// 총 분으로 나타내기
$interval_min = ($interval->days) * 24 * 60
$interval_min += $interval->* 60;
echo "총" .$interval_min += $interval->i;
echo "분";
 
// 참고 : https://blog.devflow.kr/109
 
cs

 

// 배열로 input 박스 만들기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$inputData = ["A""B""C""D"];
$baseData = "msg";
$i = 0;
while($inputData[$i])
{
/*    echo "
    <div class='input-group mb-1' style='display:none'>
    <span class='badge text-bg-danger' style='width: 120px' ><font size=3>$inputData[$i]</font></span>
    <input type='text' class='form-control' placeholder='70' aria-label='Recipient's username' name='$baseData.$inputData[$i]' value=''$_POST[$baseData.$inputData[$i]] ? $_POST[$baseData.$inputData[$i]] : NO'></div>
    ";
    */
    $i++;
}

cs

 

728x90
반응형