2

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

[{ "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]);
4

2 回答 2

6

它看起来像 JSON 数据。您可以使用 phpjson_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'];
于 2013-04-07T16:49:46.273 回答
5

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

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

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

$allTogether = $filename.'.'.$ext;
于 2013-04-07T16:50:07.597 回答