PHP curl转换为coldfusion chfttp
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP curl转换为coldfusion chfttp相关的知识,希望对你有一定的参考价值。
我正在看这个activecampaign事件跟踪的例子
curl_setopt($curl, CURLOPT_URL, "https://trackcmp.net/event");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, array(
"actid" => "649587205",
"key" => "4a2f544b998d0107cd0341e799513c7eb94abde4",
"event" => "YOUR_EVENT",
"eventdata" => "ANY_DATA",
"visit" => json_encode(array(
// If you have an email address, assign it here.
"email" => "",
)),
));
我知道我可以使用以下CFHTTP调用
<cfhttp url="https://trackcmp.net/event" method="POST">
<cfhttpparam type="FORMFIELD" name="actid" value="649587205">
<cfhttpparam type="FORMFIELD" name="key" value="4a2f544b998d0107cd0341e799513c7eb94abde4">
<cfhttpparam type="FORMFIELD" name="event" value="Watched">
<cfhttpparam type="FORMFIELD" name="eventdata" value="Video 101 - how to...">
<cfhttpparam type="FORMFIELD" name="visit" value="">
但是我该如何处理“访问”电话
"visit" => json_encode(array(
// If you have an email address, assign it here.
"email" => "",
)),
我的电子邮件地址只是混淆了如何将其转换为CF标记逻辑。谢谢。马特
最好从PHP manual开始,弄清楚这两个功能正在做什么。
阵列()
array()函数和array type的文档解释说,在这种情况下,它创建了一个关联数组,换句话说,就是CF结构。
php中的数组实际上是一个有序映射。映射是将值与键关联的类型。
json_encode()
正如名称所暗示的那样,json_encode()将关联数组对象编码为JSON格式的字符串。
CF代码
CF等价物是创建一个结构。然后使用serializeJSON()将其转换为字符串。使用结构文字语法,它非常相似
#serializeJSON( {"email":"abc@example.com"} )#
只需记住在引号中包含键名以防止CF在序列化时将键名转换为大写。此外,PHP和CF之间的一个重要区别是PHP结构默认排序。 CF结构不是。在这个简单的例子中,顺序无关紧要,但在序列化时可能会有所不同。如果确实需要有序结构,请参阅以下主题:
"How to fix `remove default alphabetical ordering of SerializeJSON() `
PHP支持Form表单中的数组,而ColdFusion则不支持。使用ColdFusion,PHP“数组”基本上是字符串,其外观和行为类似于数组,因此您可以“伪造”数组。您的visit
表单字段将如下所示:
<cfhttpparam type="FORMFIELD" name="visit[email]" value="">
<cfhttpparam type="FORMFIELD" name="visit[whatever]" value="">
以上是关于PHP curl转换为coldfusion chfttp的主要内容,如果未能解决你的问题,请参考以下文章
将 php 转换为 c#,将 curl 转换为 .net [关闭]
cloudflare api 将 curl 转换为 php curl 并发送 CNAME 更新