【问题标题】:need to create wddx packet with complex structure in PHP需要在 PHP 中创建结构复杂的 wddx 数据包
【发布时间】:2015-10-08 07:16:17
【问题描述】:

我正在尝试在 PHP 中获得这种结构。

<wddxPacket version='1.0'>
<header/>
<data>
    <struct>
        <var name='container_1'>
            <struct>
                <var name='var1'><string>xxxxx</string></var>
                <var name='var2'><string>yyy</string></var>
            </struct>
        </var>
        <var name='container_2'>
            <struct>
                <var name='var3'><string>nnnnn</string></var>
                <var name='var4'><string>zzzzzz</string></var>
            </struct>
        </var>
    </struct>
</data>

我在 PHP 中的代码是

$pq = wddx_packet_start("start");
wddx_add_vars($pq, "var1");
wddx_add_vars($pq, "var2");
etc..
$pqend = wddx_packet_end($pq);

我可以生成简单的结构,但我不能生成内部有结构的容器。 我试图生成一个数据包,并将数据包的值传递给其他数据包。没有结果。

有什么想法吗?

【问题讨论】:

    标签: php wddx


    【解决方案1】:

    您可以查看以下代码以供参考:

    <?php
    // example data
    $arrBooks = array(array('id'=>1,'title'=>'XXXXXX'),
                      array('id'=>2,'title'=>'YYYYYY'),
                      array('id'=>3,'title'=>'ZZZZZZ')
                      );
    
    // add header
    $wddxst = wddx_packet_start('We build a start');
    
    // add some variables
    $rowCount   = count($arrBooks);
    $fieldCount = 2;
    
    wddx_add_vars($wddxst,'rowCount','fieldCount');
    
    // add complex variable 
    $i = 0;
    for($i=0;$i<$rowCount;$i++){
      $varname = 'book'.$i;
      $$varname = $arrBooks[$i];
    
      wddx_add_vars($wddxst, $varname);
    }
    
    print wddx_packet_end($wddxst);
    
    ?>
    

    【讨论】:

      【解决方案2】:

      将您的容器创建为关联数组,如下所示:

      $container_1 = [
          'var1' => "xxxxx",
          'var2' => "yyy"
      ];
      
      $container_2 = [
          'var3' => "nnnnn",
          'var4' => "zzzzzz"
      ];
      
      echo wddx_serialize_vars("container_1", "container_2");
      

      输出(格式化):

      <wddxPacket version='1.0'>
      <header/>
      <data>
          <struct>
              <var name='container_1'>
                  <struct>
                      <var name='var1'><string>xxxxx</string></var>
                      <var name='var2'><string>yyy</string></var>
                  </struct>
              </var>
              <var name='container_2'>
                  <struct>
                      <var name='var3'><string>nnnnn</string></var>
                      <var name='var4'><string>zzzzzz</string></var>
                  </struct>
              </var>
          </struct>
      </data>
      </wddxPacket>
      

      【讨论】:

      • 我很完美。哟救了我的命:-)
      猜你喜欢
      • 2020-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-14
      • 2018-12-12
      • 2017-04-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多