在某个字符串后用引号解析字符串

时间:2012-05-26 10:21:06

标签: php parsing

我在解析字符串时遇到了困难。这是我的结构:

"Title":"Avatar","Year":"2009","Rated":"PG-13","Released":"18 Dec 2009","Runtime":"2 h 42 min"

我想要做的是将每个结果放在一个自己的变量中,这样我最终得到$ title,$ year,$ runtime等。

我知道,有很多不同的PHP函数,但在尝试了很多这些函数后却没有得到我想要的结果,我只需要一些帮助。

2 个答案:

答案 0 :(得分:1)

您可以尝试以下操作:

<?php
    $string = "Title":"Avatar","Year":"2009","Rated":"PG-13","Released":"18 Dec 2009","Runtime":"2 h 42 min"
    $segments = explode(',', $string);
    foreach($segments as $segment) {
        list($key, $value) = explode(':', $segment);
        echo $key, ' ', $value;
    }

答案 1 :(得分:1)

因为在对字符串进行少量修改后,您可以通过添加尾随{}来使其成为JSON字符串。并在修改后的字符串上调用json_decode函数:

$str = '"Title":"Avatar","Year":"2009","Rated":"PG-13","Released":"18 Dec 2009","Runtime":"2 h 42 min"';
$arr = json_decode("{{$str}}", true);  // True to make it array, not object

// $arr contains parsed data

它有效,只需看看this demo。您可以使用以下变量:

echo $arr["Title"];

但如果您确实需要$title我不建议这样做),您可以使用extract函数

extract($arr);

您可以像访问它一样访问它:

echo $title;