PHP - 문자열 길이 자르기 문자 갯수 추출하기 제거하기 삭제하기 없애기 치환 변환 바꾸기 변경 교환 특정 문자 존재 유무 pattern 패턴 검색 PHP_EOL 줄바꿈 preg_grep 정규식 구분자 배열 explode implode string strlen substr stripos strpos stristr strstr str_ireplace str_replace 포함여부 |
# 문자열 길이 / 문자 갯수 확인
1
2
3
4
|
$x = 50;
$y = 3;
echo "몫 : " .intval($x / 3);
echo " / 나머지 : " .($x % 3);
|
cs |
# 문자열 잘라내기 (없애기, 제거하기, 삭제하기)
// 잘라내기 (위치 기준) - 앞에서 3글자 제거하기
1
2
3 |
$str = "123456789";
$var = substr($str, 0, -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($str, 0, 3); // 123
|
cs |
// 추출하기 (위치 기준) - 3부터 5글자
1
2
3
|
$str = "123456789";
$val = substr($str, 3, 5); // 45678
|
cs |
// 추출하기 (위치 기준) - 끝에서 3 자리 (끝에서부터 끝부터 맨끝부터)
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, "123"))
{
// 특정 문자가 배열에 존재 한다면...
} // 결과 : 존재하지 않음
|
cs |
# IF 만약 A 또는 B 라면???
1
2
3
4
5
|
if (in_array($search, ["A", "B"]))
{
// 특정 문자가 배열에 존재 한다면...
} // 결과 : 존재하지 않음
|
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($null) echo "if" ."<br>";
|
cs |
# 제로패딩 zeropadding 자리수 맞추기 자릿수
1
2
3
4
5
|
$str = "123";
echo "제로패딩1 : " .str_pad($str, 10, "0") ."<br>";
echo "제로패딩2 : " .str_pad($str, 10, "0", STR_PAD_LEFT) ."<br>";
echo "제로패딩3 : " .str_pad($str, 10, "0", STR_PAD_BOTH) ."<br>";
|
cs |
/*
제로패딩1 : 1230000000
제로패딩2 : 0000000123
제로패딩3 : 0001230000
*/
# 소수점 이하 표기하기
1
2
3
|
echo number_format(123.456000, 8) ."<br>";
echo number_format(123.456000, 6) ."<br>";
|
cs |
/*
123.45600000
123.456000
*/
# 형변환
// integer 숫자를 string 문자로
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 === false) break;
$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->h * 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 |
'Programing (프로그래밍) > PHP 및 그누보드' 카테고리의 다른 글
Javascript - 3초 카운트 다운 후 3초마다 리로드 타이머 ( 새로고침 / 리플레쉬 / 리플리쉬 / Count Down / 카운트다운 / reflesh / reload / 자바스크립트 / HTML / timer ) (0) | 2023.02.12 |
---|---|
PHP - 지역변수, 전역변수 설정 방법 ( Local variable / Gloval variable / Glovals[] ) (0) | 2023.02.02 |
PHP - 배열 다루기 ( 추가 삽입 제거 생성 기본배열 빈배열 다중배열 정렬 order sort 배열마지막 ) (0) | 2023.01.22 |
PHP - function 펑션 기본 사용법 사용방법 ( 다중변수 형변환 string int ) (0) | 2023.01.22 |
PHP - 해당 사이트 외 접근제한 링크제한 하기 .htaccess (0) | 2022.07.02 |
NotePad++ 노트패드++ 설치 및 셋팅 하기 & 단축키 & PHP (0) | 2022.06.28 |
HTML - Table 기본구조 ( 테이블 표 caption figure figcaption table thead tbody tfoot tr th td ) (0) | 2022.06.06 |
홈페이지 기초 기본 초급 html php (1) | 2019.09.08 |