如何在包含特定单词的引号之间提取文本?

时间:2014-08-17 02:45:25

标签: php regex json

我试图提取的引号之间的文字,文字中也有引号,如下所示:“data”:“value”

具体的词是“数据”。 “价值”总是不同的。一旦提取,它应该是“数据”:带引号的“值”。

到目前为止......

<?
$dat = "file.dat";
$text = file_get_contents($dat);
$res = preg_match_all ('/"([^"]*)"/', $text, $matches);
if ($res) {
    foreach (array_unique ($matches[0]) as $data) {
    echo "$data";
}
}
    else {
    echo "No Data Found.";
}

我的代码只提取双引号之间的所有单词。我如何完成我想要做的事情?提前谢谢。

1 个答案:

答案 0 :(得分:0)

正如在评论中注意到的那样。您尝试解析的格式是JSON,PHP附带了一个易于使用的函数来解析JSON。你可以试试这个:

<?
$dat = "file.dat";
$text = file_get_contents($dat);
$res = json_decode($text, true);
if ($res) {
    foreach ($res as $key => $value) {
        echo "$key => $value";
    }
}
    else {
    echo "No Data Found.";
}

未经测试,但应该完成工作。