테스트 사이트 - 개발 중인 베타 버전입니다

패턴 분할 관련 질문입니다. 채택완료

내가누구야 3년 전 조회 1,591

</p>

<p>[0] => [20211109 10:29:02][160] [      SaleDlg::SetInsOrderDetail]    Row[01] [신규등록    ] ProdCd[000073] Qty[  1] Amt[        3500] Dc[        0] ProdNm[라면] SDS_ORG_DTL_NO[]</p>

<p>

 

위의 정보값을 [ ] 괄호 단위로 분리해서 저장하고 싶습니다.

어떤 방법을 이용하면 별도의 분리가 가능할까요?

예) 

[0] => [20211109 10:29:02]

[1] => [160]

.... 등등

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
B
3년 전

</p>

<p>$str = '[20211109 10:29:02][160] [      SaleDlg::SetInsOrderDetail]    Row[01] [신규등록    ] ProdCd[000073] Qty[  1] Amt[        3500] Dc[        0] ProdNm[라면] SDS_ORG_DTL_NO[]';

preg_match_all('/\[[^]]*\]/', $str, $matches);

print_r($matches[0]);</p>

<p>/*</p>

<p>Array

(

    [0] => [20211109 10:29:02]

    [1] => [160]

    [2] => [      SaleDlg::SetInsOrderDetail]

    [3] => [01]

    [4] => [신규등록    ]

    [5] => [000073]

    [6] => [  1]

    [7] => [        3500]

    [8] => [        0]

    [9] => [라면]

    [10] => []

)</p>

<p>*/</p>

<p>

고정된 길이면 다른 방법으로도 구할 수 있습니다.

뭐 구하는 방법이야 다양한데 생략!

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

B
BiHon
3년 전
[code]
$str = '[20211109 10:29:02][160] [ SaleDlg::SetInsOrderDetail] Row[01] [신규등록 ] ProdCd[000073] Qty[ 1] Amt[ 3500] Dc[ 0] ProdNm[라면] SDS_ORG_DTL_NO[]';
preg_match_all('/\[([^]]*)\]/', $str, $matches);
$matches[1] = array_map('trim', $matches[1]);
print_r($matches[1]);
/*
Array
(
[0] => 20211109 10:29:02
[1] => 160
[2] => SaleDlg::SetInsOrderDetail
[3] => 01
[4] => 신규등록
[5] => 000073
[6] => 1
[7] => 3500
[8] => 0
[9] => 라면
[10] =>
)
*/
[/code]

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인