避免在PHP中对API请求进行硬编码XML

保罗

我正在使用cURL将以下XML发送到api:

$xml = "<request type='auth' timestamp='$timestamp'>
                <merchantid>$merchantid</merchantid>
                <account>$account</account>
                <orderid>$orderid</orderid>
                <amount currency='$currency'>$amount</amount>
                <card> 
                    <number>$cardnumber</number>
                    <expdate>$expdate</expdate>
                    <type>$cardtype</type> 
                    <chname>$cardname</chname>

                </card> 
                <sha1hash>$sha1hash</sha1hash>
            </request>";

避免对这种XML进行硬编码的最佳方法是什么?我当时在考虑使用XMLWriter,但似乎很奇怪,因为它不会改变。

我应该使用模板吗?还是使用XMLWriter /简单XML生成它?

麦基

正如我在评论中提到的那样,不一定有正确的答案,但最近我也不得不围绕XML API Feed编写一个项目。我决定选择使用XMLWriter并且通过使用他们受人尊敬的功能可以容易地与其他人互换.loadXML()

class SomeApi extends XMLwriter {

    public function __construct() {
        $this->openMemory();
        $this->setIndent( true );
        $this->setIndentString ( "&#09;" );
        $this->startDocument( '1.0', 'UTF-8', 'no' );
        $this->startElement( 'root' );
    }

    public function addNode( $Name, $Contents ) {
        $this->startElement( $Name );
            $this->writeCData( $Contents ); 
        $this->endElement(); 
    }

   public function output() {
        $this->endElement();
        $this->endDocument();
   }

   //Returns a String of Xml.
   public function render() {
        return $this->outputMemory();
   }

}

$newRequest = new SomeApi();
$newRequest->addNode( 'some', 'Some Lots of Text' );
$Xml = $newRequest->render();

我认为这是一种用PHP编写XML Feed的好方法,此外,您还可以添加以下内部函数:

$this->addHeader();

private function addHeader() {
   $this->addNode( 'login', 'xxxxx' );
   $this->addNode( 'password', 'xxxxx' );
}

然后,该节点会附加一遍又一遍地使用的节点。然后,如果您突然需要使用一个DOMDocument对象(例如,我也需要XSL)。

$Dom = new DOMDocument();
$Dom->loadXML( $Xml );

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何避免在find方法中对id进行“硬编码”?

来自分类Dev

如何避免在JavaScript中对敏感值进行硬编码?

来自分类Dev

避免在mysql查询中进行硬编码

来自分类Dev

如何避免在Java中进行硬编码

来自分类Dev

如何避免对值进行硬编码?

来自分类Dev

避免使用硬编码的凭据mysqli php?

来自分类Dev

带有后端API的前端内容-如何避免在后端API所在的位置进行硬编码?

来自分类Dev

避免在编辑路径助手中对资源名称进行硬编码

来自分类Dev

如何避免使用ng-repeat对HTML中的URL名称进行硬编码

来自分类Dev

如何避免在AngularJS中对URL(或路由)进行硬编码?(提供URL解析)

来自分类Dev

避免在我的apache容器脚本中对mysql容器ip进行硬编码

来自分类Dev

避免在SQL XML属性中对&符号进行编码

来自分类Dev

ResponsiveVoice-避免将API密钥硬编码到index.html中

来自分类Dev

如何避免对文件路径进行硬编码?

来自分类Dev

遵循最佳实践避免在Apex中进行硬编码

来自分类Dev

遵循最佳实践避免在Apex中进行硬编码

来自分类Dev

使用ElementTree和请求进行XML解析

来自分类Dev

在python中对请求进行异常时的错误

来自分类Dev

对Laravel中的所有请求进行全局验证

来自分类Dev

使用Python脚本响应中的请求进行Web抓取

来自分类Dev

如何避免Javascript / jQuery中的硬编码,链式异步函数?

来自分类Dev

如何避免硬编码呢?在装饰器中

来自分类Dev

如何避免每个类中的硬编码WebClient重试时间

来自分类Dev

如何在不对URL进行硬编码的情况下向API服务器发出请求?

来自分类Dev

在PHP中如何在没有硬编码密钥的情况下进行对称加密

来自分类Dev

在PHP中如何在没有硬编码密钥的情况下进行对称加密

来自分类Dev

网关 API 中的 Cognito 用户池授权方是否要求对所有请求进行签名?

来自分类Dev

Class.getSimpleName()与在Java中对类名进行硬编码?

来自分类Dev

Rails:如何对form_for中的字段进行硬编码

Related 相关文章

  1. 1

    如何避免在find方法中对id进行“硬编码”?

  2. 2

    如何避免在JavaScript中对敏感值进行硬编码?

  3. 3

    避免在mysql查询中进行硬编码

  4. 4

    如何避免在Java中进行硬编码

  5. 5

    如何避免对值进行硬编码?

  6. 6

    避免使用硬编码的凭据mysqli php?

  7. 7

    带有后端API的前端内容-如何避免在后端API所在的位置进行硬编码?

  8. 8

    避免在编辑路径助手中对资源名称进行硬编码

  9. 9

    如何避免使用ng-repeat对HTML中的URL名称进行硬编码

  10. 10

    如何避免在AngularJS中对URL(或路由)进行硬编码?(提供URL解析)

  11. 11

    避免在我的apache容器脚本中对mysql容器ip进行硬编码

  12. 12

    避免在SQL XML属性中对&符号进行编码

  13. 13

    ResponsiveVoice-避免将API密钥硬编码到index.html中

  14. 14

    如何避免对文件路径进行硬编码?

  15. 15

    遵循最佳实践避免在Apex中进行硬编码

  16. 16

    遵循最佳实践避免在Apex中进行硬编码

  17. 17

    使用ElementTree和请求进行XML解析

  18. 18

    在python中对请求进行异常时的错误

  19. 19

    对Laravel中的所有请求进行全局验证

  20. 20

    使用Python脚本响应中的请求进行Web抓取

  21. 21

    如何避免Javascript / jQuery中的硬编码,链式异步函数?

  22. 22

    如何避免硬编码呢?在装饰器中

  23. 23

    如何避免每个类中的硬编码WebClient重试时间

  24. 24

    如何在不对URL进行硬编码的情况下向API服务器发出请求?

  25. 25

    在PHP中如何在没有硬编码密钥的情况下进行对称加密

  26. 26

    在PHP中如何在没有硬编码密钥的情况下进行对称加密

  27. 27

    网关 API 中的 Cognito 用户池授权方是否要求对所有请求进行签名?

  28. 28

    Class.getSimpleName()与在Java中对类名进行硬编码?

  29. 29

    Rails:如何对form_for中的字段进行硬编码

热门标签

归档