PHP XML-RPC Client(encode_xmlrpc)

XMLRPC 分成 Server 和 Client, 已有現成的 Server, 需要使用到 Client 去向 Server 要資料.

查 php.net 有 xmlrpc_encode(), 但是測試發現 xmlrpc_encode 送去的 XML 格式不符合(可能是我不會用吧!),  然後又找了下面幾個來看:

目的是要用是 PHP 來寫, 應該是使用 Sourceforge 的 XML-RPC for PHP, 而且也有詳細的說明(xmlrpc_client document), 但是試了好像也是有點問題(這個應該是我不會用, 又沒有心認真學習吧 XD).

所以還是直接看看 XML-RPC Spec 比較快: XML-RPC Specification

就看了 XML-RPC Spec, 基本上就是送一個 XML Document 過去, 然後 Server 也會回傳 XML Document 回來, 只要規格符合即可,  所以就寫個 encode_xmlrpc()(為了不跟 xmlrpc_encode 函數相衝, 反過來取名), 此 function 會產生 client 需要送過去的 XML Document, 然後再利用 curl幫做 POST動作 送給 XML-RPC Server,接收回來的 XML Document再用 xmlrpc_decode() 後, 就是個很好用的 Array囉~ 🙂

程式如下, 最下面 test 區塊有使用範例(註解):


關於 Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.
本篇發表於 My_Note-Programming。將永久鏈結加入書籤。

PHP XML-RPC Client(encode_xmlrpc) 有 7 則回應

  1. kueihuan-chen 說道:

    呵呵~
    純粹路過看到這篇文章
    一年前我也遇到跟你相同的問題,當初我是用php4,後來的解法跟你一樣 ~ 因此看到您的文章不禁會心一笑 = =
    不知道是我們有錯還是別人有錯 呵

  2. Tsung 說道:

    哈.. XD
    XML-RPC 在 php.net 的 document 看起來像是被遺棄的小孩一樣.. Orz..

  3. learn 說道:

    正在自学PHP,自写PHP BLOG,看到这文章很开心,谢谢,我要试试这个XML-RPC,看能不能自动ping google的服务端呢

  4. Tsung 說道:

    呵呵, 加油~ 🙂

  5. Alien 說道:

    雖然是07年的,現正需要使用
    謝謝=)

  6. JosieChen 說道:

    您好,我要實作一個php web service,
    透過此介面,我要將廠商給的function及xml資料存回本端資料表,
    請問要如何完成嗎?

  7. Tsung 說道:

    ..... 就把廠商的資料, 直接存入 DB... 就好了阿.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料