在某个字符串后解析一个字符串

tha*_*lja 0 php parsing

我有一个字符串($ source),其中包含以下数据:

{"Title":"War Horse","Year":"2011","Rated":"PG-13","Released":"25 Dec 2011","Runtime":"2 h 26 min","Genre":"Drama, War","Director":"Steven Spielberg","Writer":"Lee Hall, Richard Curtis","Actors":"Jeremy Irvine, Emily Watson, David Thewlis, Benedict Cumberbatch","Plot":"Young Albert enlists to serve in World War I after his beloved horse is sold to the cavalry. Albert's hopeful journey takes him out of England and across Europe as the war rages on.","Poster":"http://ia.media-imdb.com/images/M/MV5BMTU5MjgyNDY2NV5BMl5BanBnXkFtZTcwNjExNDc1Nw@@._V1_SX640.jpg","imdbRating":"7.2","imdbVotes":"39,540","imdbID":"tt1568911","Response":"True"}
Run Code Online (Sandbox Code Playgroud)

我正在使用这个来提取标题,流派,情节等:

foreach(str_getcsv($source) as $item) {
    list($k, $v) = explode(':', $item);
    $$k = str_replace('"', '', $v);
    }
Run Code Online (Sandbox Code Playgroud)

到目前为止,这非常有效,我可以使用$ Title,$ Genre等.唯一不起作用的是海报的URL,因为我正在爆炸':',而URL - 当然 - 包含':'(在'http'之后).

如何将海报网址放入变量?

Mar*_*c B 5

这看起来像JSON数据,为什么不简单:

$txt = '{"Title etc.....}';
$data = json_decode($txt);

$title = $data['Title'];
$genre = $data['Genre'];
etc...
Run Code Online (Sandbox Code Playgroud)

变量变量非常难看,您可能会通过使用JSON数据的内容覆盖其他变量来破坏代码.

如果你真的坚持使用自动生成的变量来控制你的命名空间,你总是可以extract()用来拉开数组