반응형
1.explode 방법 설명
explode 방법은 하나문자열은 어느 하나의 문자열을 경계점으로 하여 배열로 분할한다
array explode ( string $delimiter , string $string [, int $limit ] )
문자열로 구성된 배열을 반환합니다. 각 요소는 string의 하위 문자열로, 문자열 delimiter에 의해 경계점으로 분할됩니다.
매개 변수 설명:
델리미터
경계에 있는 구분 문자입니다.
스트링
입력한 문자열
리미트
limit 매개 변수가 설정되어 있고 양수이면 반환되는 배열은 최대 limit 요소를 포함하고 마지막 요소는 string을 포함합니다.잉여분.
limit 파라미터가 음수일 경우 마지막 -limit 요소를 제외한 모든 요소를 반환합니다.
리미트가 0이면 1로 간주된다.
2.예
문자열 사용, 분할
<?php
$str = '1,2,3,4,5,6,7,8,9';
$arr = explode(',', $str);
echo '<pre>';
print_r($arr);
echo '</pre>';
?>
출력:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
[6] => 7
[7] => 8
[8] => 9
)
사용, 분할 문자열, limit은 양수
<?php
$str = '1,2,3,4,5,6,7,8,9';
$arr = explode(',', $str, 5);
echo '<pre>';
print_r($arr);
echo '</pre>';
?>
출력:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5,6,7,8,9
)
사용, 문자열 분할, limit 음수
<?php
$str = '1,2,3,4,5,6,7,8,9';
$arr = explode(',', $str, -3);
echo '<pre>';
print_r($arr);
echo '</pre>';
?>
출력:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
)
사용, 문자열 분할, limit 0
<?php
$str = '1,2,3,4,5,6,7,8,9';
$arr = explode(',', $str,0);
echo '<pre>';
print_r($arr);
echo '</pre>';
?>
출력:
Array
(
[0] => 1,2,3,4,5,6,7,8,9
)
3.무시하기 쉬운 문제
보통 우리는 exp를 사용합니다.lode는 ID 문자열과 같은 데이터를 분할합니다
<?php
$ids = '1,2,3,4';
$data = explode(',', $ids);
if($data){
foreach($data as $k=>$v){
// do sth
}
}
?>
if(data)를 판단하기 때문에 통상 ids가 비어 있지 않고 코드를 봐도 별 문제가 없다.
그러나 실제로는 ids=null, data가 비어 있지 않아 foreach에서 실행되는 코드에 문제가 생길 수 있다
<?php
$ids = null;
$data = explode(',', $ids);
if($data){
print_r($data);
}else{
echo 'null';
}
?>
ids=null이기 때문에 explode로 분할하여 얻은 배열은 Array()가 아닌 Array([0]=>)이다.
그래서 좀 수정을 해야 문제를 피할 수 있다고 판단했습니다
<?php
$ids = null;
$data = explode(',', $ids);
if(isset($data[0]) && $data[0]){
foreach($data as $k=>$v){
// do sth
}
}
?>
반응형
'개발 꿀팁 > PHP' 카테고리의 다른 글
php 자체 증가 ID를 기반으로 고유 번호 클래스 만들기 (0) | 2022.08.25 |
---|---|
php cli 모드에서의 파라미터 획득 방법 (0) | 2022.08.24 |
php 0~1 난수 생성 방법 (0) | 2022.08.24 |
JSON 문자열 key에 큰따옴표가 없습니다 (0) | 2022.08.24 |
curl 또는 file_get_contents 인증 페이지를 가져오는 방법 (0) | 2022.08.24 |