在加载的json数据中插入其他代码

时间:2016-08-12 03:58:59

标签: php json

您好,

我在json中加载一些数据但是我需要根据加载的数据插入一些额外的数据。这是加载数据时的示例

{"markup":"<li id=\"com1\">some content</li><li id=\"com2\">some more content</li>"}

这是预期的最终结果:

<li id="com1">some content <a href="delete=com1">DELETE</a></li>
<li id="com2">some content <a href="delete=com2">DELETE</a></li>

正如您所看到的,我添加了一个删除链接,其中包含一个包含该元素ID的URL,因此我需要一个代码来首先找到该ID,然后将其添加到每个元素的正确位置。

这是我的PHP代码:

$json = file_get_contents("data.txt");
$jsonIterator = new RecursiveIteratorIterator(
    new RecursiveArrayIterator(json_decode($json, TRUE)),
    RecursiveIteratorIterator::SELF_FIRST);

foreach ($jsonIterator as $key => $val) {
    echo $val;
    }

最好和最简单的方法是什么?

谢谢。

1 个答案:

答案 0 :(得分:1)

parsing html内容的php模块。这可能不是您寻找的答案。但这会给你一些想法。

$str = file_get_contents("data.txt");
$data = json_decode($str,true);
$html = $data["markup"];
$dom = new DOMDocument;
$dom->loadHTML($html);
$lis = $dom->getElementsByTagName('li');
foreach ($lis as $li) {
    $a = $dom->createElement('a','DELETE');
    $a->setAttribute('href','delete='.$li->getAttribute('id'));
    $li->appendChild($a);
}
$final = $dom->saveHTML();
echo $final;