美文网首页我爱编程
数据交换格式&XML(重量级)

数据交换格式&XML(重量级)

作者: MGd | 来源:发表于2017-05-21 11:17 被阅读65次
    • 问题:
      • xhr.responseText/responseXML,服务器端, 响应的并不是纯数据, 而是夹带着一些‘界面’,这样不利于数据的重用。
    • 引发问题:
    • 响应纯文本数据,不能表述每个字段所代表的含义。

    数据交换格式(服务器端)

    • 解决:自己定义数据编码和解码方式
    • 存在问题:不安全,阅读性差,扩展性差

    XML(服务器端)

    • 解决:


    • 1.由于data中保存了我们所需要的数据
    • 2.从data中拿到数据,在creatXML中使用规定的格式给数据定义(也就是说数据是怎么排版)。
    include 'data.php';
    
    <?php
    include 'data.php';
    $xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
    $xml .= "<goods>\n";                          //1
            for($i = 0; $i < count($titles); $i ++) {
                $xml .= "\t<good>\n";                        //2
                  $xml .= "\t\t<title>";                         //a
                      $xml .= $titles[$i];
                  $xml .= "</title>\n";                          //a
                  $xml .= "\t\t<image>";                         //b
                      $xml .= $images[$i];
                  $xml .= "</image>\n";                          //b
               $xml .= "\t</good>\n";                       //2
            }
    $xml .= "</goods>";                           //1
    file_put_contents('goods.xml', $xml);
    ?>
    
    • 3.用file_put_contents('goods.xml', $xml)方法,将编写好的$xml放到goods里面。
    在creatXML的页面中使用这个方法,放到goods里面(此时goods里面的数据就是下面的样子)
    //例子:
    <?xml version="1.0" encoding="utf-8"?>
    <goods>
    <good>
            <title>。。</title>
            <image>server/taobaoImg/。。.jpg</image>
        </good>
    </goods>
    
    • 4.最后服务器端(01-goods-display-server)使用file_get_contents('goods.xml')方法获取goods里面的内容,然后响应给客户端。
    <?php
    header('Content-Type: text/xml; charset:utf-8');
    // 获取文件内容
    $xml = file_get_contents('goods.xml');
    echo $xml;
    ?>
    
    • 存在问题:虽然可以描述和传输复杂数据,但是其解析过于复杂并且体积较大。

    相关文章

      网友评论

        本文标题:数据交换格式&XML(重量级)

        本文链接:https://www.haomeiwen.com/subject/jlbpxxtx.html