2013-04-07 1 views
2

У меня есть строка, которая выглядит как этотРазделить строку с определенной схемой, это плохая практика?

[{ "title":"","comment":"","size":"18.298","name":"logo.png", 
"filename":"fu_mucqjrfifpadsw8","ext":"png" }] 

Я хочу, чтобы имяфайла.рсш из него. Для меня это выглядит, как я мог бы сделать это проще, чем следующее (что делает работу, но, кажется, плохая практика -или это?)

Как я извлекая его в данный момент:

$logo = explode(':',$string); 
$ext = str_replace('"', "", $logo[6]); 
$ext = str_replace(' }]', "", $ext); 
$logo = explode(',',$logo[5]); 
$logo=str_replace('"', "", $logo[0]); 

ответ

6

Похоже данные JSON , Вы можете использовать php's json_decode, чтобы получить массив, а затем проиндексировать массив.

$string = '[{ "title":"","comment":"","size":"18.298","name":"logo.png","filename":"fu_mucqjrfifpadsw8","ext":"png" }]'; 
$data = json_decode($string, true); 
// Access filename field 
$data[0]['filename']; 
+0

совершенное, спасибо. – Markus

5

Это ужасно практика. Ваши данные находятся в формате JSON, поэтому вам нужно использовать json_decode, чтобы преобразовать его в переменную PHP, а затем перейти к необходимой вам информации.

Например, чтобы получить имя файла + расширение:

$data = json_decode($string, true); 
$filename = $data[0]['filename']; 
$ext = $data[0]['ext']; 

$allTogether = $filename.'.'.$ext; 
+0

вот почему я спросил. я знаю, что это был json ... пытался Google, но как вы Google для строковой структуры: D – Markus

Смежные вопросы