如何从 php 中的逗号分隔列表生成 sendgrid json 格式
How to generate sendgrid json format from comma seperated list in php
我有以下用逗号分隔的电子邮件:(最多 1000 封电子邮件)
$mylist = 'example1@gmail.com , example2@gmail.com';
$myArray = explode(",", $mylist );
我尝试使用 explode
和 json_encode
创建数组,得到以下格式
["example1@gmail.com "," example2@gmail.com"]
如何按照以下 json 格式创建 json:
"{\"personalizations\":[{\"to\": [{\"email\": \"example1@gmail.com\"}]},{\"to\": [{\"email\": \"example2@gmail.com\"}]}],\"subject\":\"Hello, World!\",\"from\":{\"email\":\"sam.smith@example.com\",\"name\":\"Sam Smith\"},\"content\":[{\"type\":\"text/plain\",\"value\":\"Hello, World!\"}],\"reply_to\":{\"email\":\"sam.smith@example.com\",\"name\":\"Sam Smith\"}}"
电子邮件应生成为:
[ {\"to\": [{\"email\": \"example1@gmail.com\"}]} , {\"to\": [{\"email\": \"example2@gmail.com\"}]} ]
PLUS(无论我是否不使用 json_encode 生成,生成的数据都应该与上面匹配,因为我正在尝试使用它:
CURLOPT_POSTFIELDS => "{\"personalizations\":[{\"to\": [{\"email\": \"example1@gmail.com\"}]},{\"to\": [{\"email\": \"example2@gmail.com\"}]}],\"subject\":\"Hello, World!\",\"from\":{\"email\":\"sam.smith@example.com\",\"name\":\"Sam Smith\"},\"content\":[{\"type\":\"text/plain\",\"value\":\"Hello, World!\"}],\"reply_to\":{\"email\":\"sam.smith@example.com\",\"name\":\"Sam Smith\"}}",
您可以如下使用内爆函数
$arr = ["example1@gmail.com "," example2@gmail.com"];
function add_extra($str) {
return sprintf('{\"to\": [{\"email\": \"%s\"}]}', $str);
}
echo '[ '.implode(',', array_map('add_extra', $arr)).']';
这应该给出:
[ {\"to\": [{\"email\": \"example1@gmail.com \"}]} , {\"to\": [{\"email\": \"example2@gmail.com\"}]} ]
我有以下用逗号分隔的电子邮件:(最多 1000 封电子邮件)
$mylist = 'example1@gmail.com , example2@gmail.com';
$myArray = explode(",", $mylist );
我尝试使用 explode
和 json_encode
创建数组,得到以下格式
["example1@gmail.com "," example2@gmail.com"]
如何按照以下 json 格式创建 json:
"{\"personalizations\":[{\"to\": [{\"email\": \"example1@gmail.com\"}]},{\"to\": [{\"email\": \"example2@gmail.com\"}]}],\"subject\":\"Hello, World!\",\"from\":{\"email\":\"sam.smith@example.com\",\"name\":\"Sam Smith\"},\"content\":[{\"type\":\"text/plain\",\"value\":\"Hello, World!\"}],\"reply_to\":{\"email\":\"sam.smith@example.com\",\"name\":\"Sam Smith\"}}"
电子邮件应生成为:
[ {\"to\": [{\"email\": \"example1@gmail.com\"}]} , {\"to\": [{\"email\": \"example2@gmail.com\"}]} ]
PLUS(无论我是否不使用 json_encode 生成,生成的数据都应该与上面匹配,因为我正在尝试使用它:
CURLOPT_POSTFIELDS => "{\"personalizations\":[{\"to\": [{\"email\": \"example1@gmail.com\"}]},{\"to\": [{\"email\": \"example2@gmail.com\"}]}],\"subject\":\"Hello, World!\",\"from\":{\"email\":\"sam.smith@example.com\",\"name\":\"Sam Smith\"},\"content\":[{\"type\":\"text/plain\",\"value\":\"Hello, World!\"}],\"reply_to\":{\"email\":\"sam.smith@example.com\",\"name\":\"Sam Smith\"}}",
您可以如下使用内爆函数
$arr = ["example1@gmail.com "," example2@gmail.com"];
function add_extra($str) {
return sprintf('{\"to\": [{\"email\": \"%s\"}]}', $str);
}
echo '[ '.implode(',', array_map('add_extra', $arr)).']';
这应该给出:
[ {\"to\": [{\"email\": \"example1@gmail.com \"}]} , {\"to\": [{\"email\": \"example2@gmail.com\"}]} ]