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

Mar*_*kus 2 php arrays string

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

[{ "title":"","comment":"","size":"18.298","name":"logo.png",
"filename":"fu_mucqjrfifpadsw8","ext":"png" }]
Run Code Online (Sandbox Code Playgroud)

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

我目前如何提取它:

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

Bro*_*omb 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'];
Run Code Online (Sandbox Code Playgroud)


Jon*_*Jon 5

这是一种可怕的做法.您的数据是JSON格式,因此您应该使用json_decode它将其转换为PHP变量,然后导航到您需要的信息.

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

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

$allTogether = $filename.'.'.$ext;
Run Code Online (Sandbox Code Playgroud)