请教PHP大佬

[复制链接]
查看: 1112   回复: 9
发表于 2022-5-4 22:33:25 | 显示全部楼层 |阅读模式
已有一个变量
  1. $formatText
复制代码

后面我要post这个json
  1. $data = '{"message": { "rid": "XXXX", "msg": "XXXX"}}';curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
复制代码

请问在msg后面应该怎么写来引用前面的$formatText变量(替换msg里的XXXX)呢?
回复

使用道具 举报

发表于 2022-5-4 22:34:24 | 显示全部楼层
  1. $data = '{"message": { "rid": "XXXX", "msg": "'.$formatText.'"}}';
复制代码

$formatText 中有特殊字符的话需要单独处理,个人不建议直接拼接json.

你这个场景下json_encode + json_decode 不会对性能产生多大影响,还不用转义特殊字符.

另外其实json_decode也可以不用的...如果是已经完全确定的json内容,直接提前定义成array然后json_encode就行了.
  1. $_data = json_decode('{"message": { "rid": "XXXX", "msg": "XXXX"}}',true);$_data['message']['msg'] = $formatText;$data = json_encode($_data);
复制代码
回复 支持 反对

使用道具 举报

发表于 2022-5-4 22:34:29 | 显示全部楼层
$data = '{"message": { "rid": "XXXX", "msg": "'.$formatText.'"}}';
回复 支持 反对

使用道具 举报

发表于 2022-5-4 22:34:57 | 显示全部楼层
楼上指出了我的错误。
$data = '{"message": { "rid": "XXXX", "msg":"'.$formatText.'")}}';
应该是这样吧,感觉输出的json数据双引号还是要的。本人新手,仅供参考。
回复 支持 反对

使用道具 举报

发表于 2022-5-4 22:35:09 | 显示全部楼层
"msg":'.$formatText.'"XXXX"
回复 支持 反对

使用道具 举报

发表于 2022-5-4 22:35:23 | 显示全部楼层
算了,不是很懂
回复 支持 反对

使用道具 举报

发表于 2022-5-4 22:35:49 | 显示全部楼层
是的,粗心了:$
感谢楼上指出:handshake
回复 支持 反对

使用道具 举报

发表于 2022-5-4 22:35:56 | 显示全部楼层
楼上编辑掉了,请问修改了什么?
回复 支持 反对

使用道具 举报

发表于 2022-5-4 22:36:53 | 显示全部楼层
  1. $formatText$data = '{"message": { "rid": "XXXX", "msg":"'.$formatText.'")}}';curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
复制代码

原来那个错了,我能想到的就是用连接字符了请教PHP大佬

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2022-5-4 22:37:41 | 显示全部楼层
请教PHP大佬

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则