2013-11-01 4 views
0

나는 특정 사진 온도 확인 기능을 사용하여 사진 공유 시스템을 만들고 있습니다. 기본적으로 입력 파일 제출시 사진이 "temp"라는 디렉토리에로드됩니다.Preg_match 문자열 및 배열에 일치 항목을 입력하십시오.

내가이 3 인 3_1383310890_1709373616.jpg USER_ID 1383310890 같은 특정 문자열에 파일의 이름을 변경하면 날짜이며 1709373616은 임의의 코드 명이다.

사용자가 양식을 완성하지 못하면 다음 번에 해당 사용자 ID의 파일 임시 파일이 있는지 확인해야합니다. 이렇게 정보를 얻지 만 왜 그렇지 않은지 이해하지 못합니다. 작업.

$string = 'temp/3_1383310890_1709373616.jpg'; 

    preg_match_all('/^[0-9]+_/',$string,$match); 

    $arr = array('user' => $match[1][0], 'date' => $match[2][0], 'photo' => $match[3][0]); 
    echo json_encode($arr); 

는이 null 객체

{"user":null,"date":null,"photo":null} 

어떤 아이디어를 반환?

+1

'var_dump ($ match)'를 시도 해본 적이 있습니까? 거기에 뭐가 들어 있니? – andrewsi

+0

나는 진짜 문제가 preg_match_all에 있다고 생각한다. 그것에 대해 어떻게 생각하고 있는가? –

+1

이 정규식과 일치시키려는 것은 무엇입니까? 현재 "문자열 시작, 하나 이상의 숫자, 밑줄"이 검색 중입니다. 문자열의 시작은 "temp"이며 "하나 이상의 숫자"와 일치하지 않습니다. –

답변

0

^char. 이 경우 문자열의 처음부터 일치하는 것을 의미합니다. 나는 다음과 같이 쓸 것이다 :

$string = 'temp/3_1383310890_1709373616.jpg'; 
preg_match('/^temp\/([0-9]+)_([0-9]+)_([0-9]+)\.jpg$/',$string,$match); 
$arr = array('user' => $match[0], 'date' => $match[1], 'photo' => $match[2]); 
echo json_encode($arr); 
관련 문제