Bu geçerli json dizi php kullanıyor

1 Cevap php

Benim mvc modelinde çalışmak, başkası tarafından yapılan bazı kod dönüştürmek gerekiyor

Ben anlamıyorum EOD gibi bazı fonksiyonları kullanıyor. Hala bir sınıfta çalışmak mı?

Primarely, benim soru json çıktı focusus.

Eski kod php json_encode işlevini kullanabilirsiniz, ancak bu gibi doğrudan çıkışları değil

?>
{
        "username": "<?php echo $_SESSION['username'];?>",
        "items": [
            <?php echo $items;?>
        ]
}

<?php

Ben böyle yapardım, ama ben doğru öğeler için bir parçası olduğundan emin olmak gerekir

header('Content-type: application/json'); 

$output = array("username"=> isset( $_SESSION['username'] ) ? $_SESSION['username'] : "?",
                "items"=>$items
                );
$this->content = json_encode($output);

This is some background on how the $items is made. An item is stored like this:

$_SESSION['chatHistory'][$_POST['to']] .= <<<EOD
                       {
            "s": "1",
            "f": "{$to}",
            "m": "{$messagesan}"
       },
EOD;

ve değişken böyle $ öğeleri konur

$items = '';


if ( !empty($_SESSION['openChatBoxes'] ) ) {
        foreach ( $_SESSION['openChatBoxes'] as $chatbox => $void ) {
            $items .= $this->chatBoxSession($chatbox);
        }
    }

//The chatBoxSession() function takes an item from the  $_SESSION['chatHistory'] array and returns it.

I hope this was somewhat clear enough? The php manual warns that in some cases you don't get an array output, instead you get an object. So, with the EOD syntax, I am not really sure.

Ben bazı şeyleri onlar da sözde ne yapıyor, ve sağ çıkış veriyoruz biliyorum eğer bana biraz zaman kazandırabilir.

teşekkürler, Richard

1 Cevap

Bu, heredoc adlandırılır. Tüm metin içinde tek bir dize sanki çalışır. Eğer JSON oluşturmak için çalışıyoruz eğer bunu kullanmıyorum. Bunun yerine, bir noktalı virgül vurur kadar deyim yapılmaz gerçeğini kullanın:

$somevar = {
  "s": "1",
  "f": "{$to}",
  "m": "{$messagesan}"
};