xmlrpcmsg::serialize() 不会将参数放入序列化的有效负载中
xmlrpcmsg::serialize() doesn't put params into serialized payload
我们使用 php xmlrpc 库向电子邮件提供商发送 xmlrpc 请求。
这些一直有效,但是在新环境(php 5.6 而不是 5.3)上测试这些功能时,似乎 xmlrpcmsg
在调用 [= 时不会构建参数值32=]()。即使当我 var_dump 对象时参数显然存在。
我包含库的方式是包含 xmlrpc.inc
(// 版权所有 (c) 1999,2000,2002 Edd Dumbill。)尽管我找不到任何可能告诉我任何扩展的文档可能需要或 php 版本兼容性。
示例:
$this->msg = new xmlrpcmsg(
"contact.transactional", array(
// carer details
new xmlrpcval(
array(
"carer_id" => new xmlrpcval($data['Carer_ID'], "string"),
"email" => new xmlrpcval($data['CarerEmail'], "string"),
), "struct"
),
// campaign_id to be launched
new xmlrpcval($trigger['trigger_id'], "int"),
// transactional data to be passed into email template
new xmlrpcval(
array(
"carer_id" => new xmlrpcval($data['Carer_ID'], "int"),
"baby_id" => new xmlrpcval($data['Baby_ID'], "string"),
"carer_email" => new xmlrpcval($data['CarerEmail'], "string"),
), "struct"
),
)
);
当我 var_dump
$this->msg->serialize()
在我的本地系统/已经运行的服务器上时
<methodcall>
<methodname>contact.transactional</methodname>
<params>
<param>
<value>
<struct>
<member>
<name>email</name>
<value>
<string>adam+testest@testest.co.uk</string>
</value>
</member>
</struct>
</value>
<param>
<value>
<int>17458</int>
</value>
<param>
<value>
<struct>
<member>
<name>carer_id</name>
<value>
<string>654321</string>
</value>
</member>
<member>
<name>baby_id</name>
<value>
<string>123456</string>
</value>
</member>
<member>
<name>carer_email</name>
<value>
<string>adam+testest@testest.co.uk</string>
</value>
</member>
</struct>
</value>
</params>
</methodcall>
当我 var_dump
$this->msg->serialize()
在新的测试服务器上
<methodcall>
<methodname>contact.transactional</methodname>
<params>
<param>
<value></value>
<param>
<value></value>
<param>
<value></value>
</params>
</methodcall>
看来我只需要将库更新到最新版本phpxmlrpc at github
我们使用 php xmlrpc 库向电子邮件提供商发送 xmlrpc 请求。
这些一直有效,但是在新环境(php 5.6 而不是 5.3)上测试这些功能时,似乎 xmlrpcmsg
在调用 [= 时不会构建参数值32=]()。即使当我 var_dump 对象时参数显然存在。
我包含库的方式是包含 xmlrpc.inc
(// 版权所有 (c) 1999,2000,2002 Edd Dumbill。)尽管我找不到任何可能告诉我任何扩展的文档可能需要或 php 版本兼容性。
示例:
$this->msg = new xmlrpcmsg(
"contact.transactional", array(
// carer details
new xmlrpcval(
array(
"carer_id" => new xmlrpcval($data['Carer_ID'], "string"),
"email" => new xmlrpcval($data['CarerEmail'], "string"),
), "struct"
),
// campaign_id to be launched
new xmlrpcval($trigger['trigger_id'], "int"),
// transactional data to be passed into email template
new xmlrpcval(
array(
"carer_id" => new xmlrpcval($data['Carer_ID'], "int"),
"baby_id" => new xmlrpcval($data['Baby_ID'], "string"),
"carer_email" => new xmlrpcval($data['CarerEmail'], "string"),
), "struct"
),
)
);
当我 var_dump
$this->msg->serialize()
在我的本地系统/已经运行的服务器上时
<methodcall>
<methodname>contact.transactional</methodname>
<params>
<param>
<value>
<struct>
<member>
<name>email</name>
<value>
<string>adam+testest@testest.co.uk</string>
</value>
</member>
</struct>
</value>
<param>
<value>
<int>17458</int>
</value>
<param>
<value>
<struct>
<member>
<name>carer_id</name>
<value>
<string>654321</string>
</value>
</member>
<member>
<name>baby_id</name>
<value>
<string>123456</string>
</value>
</member>
<member>
<name>carer_email</name>
<value>
<string>adam+testest@testest.co.uk</string>
</value>
</member>
</struct>
</value>
</params>
</methodcall>
当我 var_dump
$this->msg->serialize()
在新的测试服务器上
<methodcall>
<methodname>contact.transactional</methodname>
<params>
<param>
<value></value>
<param>
<value></value>
<param>
<value></value>
</params>
</methodcall>
看来我只需要将库更新到最新版本phpxmlrpc at github