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

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

在〈PHP XML-RPC Client(encode_xmlrpc)〉中有 7 則留言

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

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

發表迴響

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