xmlrpc_encode_request的替代方案

时间:2012-08-06 18:38:26

标签: php xml xml-rpc

由于我无法在localhost上安装XML-RPC,我想知道是否有xmlrpc_encode_request()的替代PHP可以帮助我完成我的任务。

2 个答案:

答案 0 :(得分:2)

知道要输出XML的良好结构,您可以尝试使用PHP的XMLWriter扩展来为您完成工作。

注意页面上的评论:

  

重要提示:XMLWriter需要您提供UTF-8数据。它可以以各种编码输出XML,但输入应严格为UTF-8!

示例使用代码(取自XMLWriter::openMemory的文档):

header('Content-type: text/xml; charset=UTF-8');

$oXMLWriter = new XMLWriter;
$oXMLWriter->openMemory();
$oXMLWriter->startDocument('1.0', 'UTF-8');

$oXMLWriter->startElement('test');
$oXMLWriter->text('Hello, World!');
$oXMLWriter->endElement();

$oXMLWriter->endDocument();
echo $oXMLWriter->outputMemory(TRUE);

此外,请注意xmlrpc_encode_request()的使用由个人自己负责,因为该功能是实验性的,可能会发生变化。

答案 1 :(得分:0)

我结束使用PEAR XML_RPC http://pear.php.net/package/XML_RPC 我没有尝试Whisperity方法,因为当他回答时我已经在处理这个问题了。

为了使其正常工作,我刚安装如下:

 /Applications/MAMP/bin/php/php5.4.4/bin/pear install XML_RPC

然后我用了:

$content = new XML_RPC_Value(array(
            'post_title'=> new XML_RPC_Value($title,'string'),
            'post_status'=> new XML_RPC_Value('publish','string'),
            'post_excerpt'=> new XML_RPC_Value($title,'string'),
            'post_content'=> new XML_RPC_Value($body,'string'),
            'mt_allow_comments'=> new XML_RPC_Value(0,'int'),
            'mt_allow_pings'=> new XML_RPC_Value(0,'int'),
            'post_type'=> new XML_RPC_Value('market','string')
        ),'struct' );    
$params = array(new XML_RPC_Value(0,'int'),new XML_RPC_Value($this->UserName,'string'),new XML_RPC_Value($this->PassWord,'string'),$content,new XML_RPC_Value(true,'boolean'));