2013-11-01 14 views
0

我創建一個照片共享系統與特定的照片臨時驗證。 基本上,在輸入文件提交照片被加載到一個名爲「臨時」的目錄。的preg_match串並把匹配到一個數組

我在這樣3_1383310890_1709373616.jpg 這裏的3是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

的^字符。在這種情況下意味着匹配從字符串的開頭。我會用:

$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); 
相關問題