2013-06-24 4 views
0
[-27439367, 160818667, 'http:\/\/cs13110.vk.me\/u109515688\/video\/l_97403fde.jpg', 'Super Bass', '', '0', 38674081, 37, 0, '2:34', '3', '_8cb245a336c2e35049', ''] 

Hello! Вот мой образец текста .... мне нужно использовать preg_match для нескольких моделей ... Мне нужно найти:

1. -27439367
2. 165375317
3. http://cs6067.vk.me /u189929178/video/l_02613a05.jpg
4. Super Bass
5. 0
6. 38674081
7. 37
8. 2:34
9. 0
10. 3
11. _8cb245a336c2e35049
php preg_match_all несколько узоров


Я использовал:

preg_match_all("/[(.*?), (.*?), '(.*?)', '(.*?)', '', '0', 0, 23, 0, '', '0', '(.*?)', '']/mis", $a, $hashtweet); 
+2

он выглядит как действительный json, поэтому http://php.net/manual/en/function.json-decode.php –

+0

вы также можете взорваться, но это json. – ccd580ac6753941c6f84fe2e19f229

+0

действительный json будет двойным кавычком '' 'не одинарные кавычки'''. Я не знаю, может ли json_decode обрабатывать это, если не str_replace помогает – x4rf41

ответ

1

Здесь вы идете:

$json = "[-27439367, 160818667, 'http:\/\/cs13110.vk.me\/u109515688\/video\/l_97403fde.jpg', 'Super Bass', '', '0', 38674081, 37, 0, '2:34', '3', '_8cb245a336c2e35049', '']" ; 
$json = preg_replace("/'/", '"', $json); //Replace single quotes by double quotes 
$obj = json_decode($json); 

var_dump($obj); 

array (size=13) 
    0 => int -27439367 
    1 => int 160818667 
    2 => string 'http://cs13110.vk.me/u109515688/video/l_97403fde.jpg' (length=52) 
    3 => string 'Super Bass' (length=10) 
    4 => string '' (length=0) 
    5 => string '0' (length=1) 
    6 => int 38674081 
    7 => int 37 
    8 => int 0 
    9 => string '2:34' (length=4) 
    10 => string '3' (length=1) 
    11 => string '_8cb245a336c2e35049' (length=19) 
    12 => string '' (length=0) 
1

Может лишить [] скобки и сделать explode(',', $input) (docs)?

Другая идея: это похоже на действительные данные JSON, поэтому json_decode (docs) должен сделать трюк.