1

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

4

2 回答 2

2

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

注意页面上的评论:

重要提示: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()由于该功能是实验性的,可能会发生变化,因此请自行负责。

于 2012-08-06T18:49:01.147 回答
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'));
于 2012-08-07T01:09:36.733 回答