1

私はmysqlから記事を解析し、phpでjsonのデータをエンコードしようとしています。

現在私が使用している記事を公開しています:

<?php if ($success): ?>
    <?php foreach($article->get_items() as $item): ?>

    <?php echo $item->get_content(); ?>


    <?php endforeach; ?>
<?php endif; ?>

これを json にエンコードしようとしています。

私はこれを試しました:

<?php if ($success): ?>
    <?php foreach($feed->get_items() as $item): ?>

    <?php
    $data = array(
        'id'    =>    "1",
        'result'       =>    array(
                            'title'    =>   'This is the title',
                            'publish'   =>  'John Doe',
                            'content'    =>  $item->get_content()
                     )
    );

    echo json_encode($data);
?>
<?php endforeach; ?>
<?php endif; ?>

また、すべてのコンテンツを解析してエンコードできるようにforeach() をどのように使用すればよいかわかりません。

アップデート:

$item->get_content()から解析されたコンテンツには、次のような HTML 要素があります。などなので、json または文字列にエンコードする必要がありますか?

更新 2:

問題は、現在私がこれで終わることです:

[
{"id":"1","result":{"title":"This is the title","publish":"John Doe","content":"content 1"}},
{"id":"1","result":{"title":"This is the title","publish":"John Doe","content":"content 1"}},
{"id":"1","result":{"title":"This is the title","publish":"John Doe","content":"content 1"}},
{"id":"1","result":{"title":"This is the title","publish":"John Doe","content":"content 1"}},
{"id":"1","result":{"title":"This is the title","publish":"John Doe","content":"content 1"}}
]

foreach() を適切に使用していないため、これで終わりたいと考えています。

[
{"id":"1","result": {"title":"This is the title","publish":"John Doe","content":"content 1"},
            {"title":"This is the title","publish":"John Doe","content":"content 1"},
            {"title":"This is the title","publish":"John Doe","content":"content 1"},
            {"title":"This is the title","publish":"John Doe","content":"content 1"},
            {"title":"This is the title","publish":"John Doe","content":"content 1"}
]

また、コンテンツにはjsonエンコーディングを破壊するhtml要素が含まれている場合があるため、jsonまたは文字列にエンコードする必要があると思いますか?

4

3 に答える 3

12

すべてのデータを保持する配列を作成し、それをエンコードしますjson

if ($success){
    $result = array();
    foreach($feed->get_items() as $item){
        $data = array(
             'id'    =>    "1",
             'result'       =>    array(
                   'title'    =>   'This is the title',
                   'publish'  =>  'John Doe',
                   'content'  =>  $item->get_content()
             )
         );
         array_push($result,$data);
    }                
    echo json_encode($result);
}
于 2013-03-28T22:48:39.910 に答える
5
<?php
foreach($article->get_items() as $item){
    $result[] = array(
            'title'   => 'This is the title',
            'publish' => 'John Doe',
            'content' => $item->get_content()
        );
    );
}

echo json_encode(array('id'=>'1', 'result'=>$result));
?>

実際、私はあなたが何を必要としているのか理解していないので、役に立たないかもしれません.

于 2013-03-28T22:47:38.513 に答える
2

コードを含む文字列を出力するときはHTML、次を使用する必要がありますhtmlspecialchars

echo htmlspecialchars(json_encode($data));

例えば:

$data = array('id' => '<hello>');

echo htmlspecialchars(json_encode($data));

// Outputs: {"id":"<hello>"}
于 2013-03-28T23:04:40.050 に答える