用某种方案拆分一个字符串,这是一个不好的做法吗?

时间:2013-04-07 16:47:52

标签: php arrays string

我有一个看起来像这样的字符串

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

我想从中获取filename.ext。对我来说,看起来我可以比以下更容易做到这一点(这确实有效,但看起来很糟糕 - 或者是吗?)

我目前如何提取它:

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

2 个答案:

答案 0 :(得分:6)

它看起来像JSON数据。您可以使用php的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'];

答案 1 :(得分:5)

这是可怕的练习。您的数据采用JSON格式,因此您应该使用json_decode将其转换为PHP变量,然后导航到您需要的信息。

例如,要获取文件名+扩展名:

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

$allTogether = $filename.'.'.$ext;
相关问题