2012-01-29 5 views
1

나는 일반 텍스트 저널을 가지고 있습니다. PHP로 포맷하려고합니다. 각 항목을 날짜와 텍스트가 들어있는 배열로 분할하고 싶습니다.PHP는 문자열을 날짜 (yyyy-mm-dd)로 배열로 분할합니다.

preg_split을 사용하면이 작업을 수행 할 수 있지만 날짜가 모두 삭제됩니다!

2012-01-28 

text text text 

2012-01-14 

some other text 

2011-12-07 

a previous entry 

등 모든함으로써

+0

'preg_split()'코드가 어떻게 생겼는지 보여줄 수 있습니까? – Bojangles

+0

preg_spilt 코드를 푸십시오. – Sabari

답변

2

PREG_SPLIT_DELIM_CAPTURE 플래그는 패턴 문자열에서 날짜가 괄호로 묶여있는 한 분할 할 때 날짜가 삭제되지 않도록합니다. 예 :

$array = preg_split('/(\d{4}-\d{2}-\d{2})/', $text, null, PREG_SPLIT_DELIM_CAPTURE); 

날짜가 배열의 홀수 색인에 있고 콘텐츠가 짝수 색인에 있습니다.

2

의미는 preg_match_all 수 :

TXT 파일에는이 같은 모습

$matches = array(); 
preg_match_all('~(?P<date>\d{4}-\d{2}-\d{2})\s*(?P<text>.*)~ms', $subject, $matches); 

하는 것이 맞도록 참견하는 비트가 필요할 수 있습니다 당신의 함유량. 쉽게 이용 또는 맞춤 sctructure로 변환 될 수

matches => { 
    date(3) => {"2012-01-28", ... } 
    ... 
    text(3) => {"text text text", ...} 

같은 구조로

결과.

+0

jburbage의 답변으로 이동하십시오. 그의 솔루션이 더 좋습니다. –

관련 문제