我有一个看起来像这样的字符串
[{ "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]);
答案 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;