You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP CURL中JSON类型POST字段如何正确使用变量?

在PHP的JSON类型POST字段中正确使用变量的方法

问题根源

你的代码存在两个核心问题:

  1. 单引号不解析变量:CURLOPT_POSTFIELDS的内容用单引号包裹,PHP不会解析单引号内的$deger变量,导致实际发送的是字符串"$deger"而非变量值123。
  2. 语法错误:直接书写JSON对象的写法不符合PHP语法,无法被正确识别。

正确实现方式

方法一:用json_encode构建JSON字符串(推荐)

先创建包含变量的PHP数组,再通过json_encode()转换为标准JSON字符串,这种方式无需手动处理引号转义,能避免格式错误,尤其适合复杂数据结构。

<?php
$deger = 123;
$curl = curl_init();

// 构建包含变量的PHP数组
$postData = [
    "iprocessnumber" => $deger,
    "activationStatus" => "SUCCESS",
    "code" => "100",
    "message" => "Test mesajı"
];

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://serviceurl',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'POST',
    // 将数组转为合法的JSON字符串
    CURLOPT_POSTFIELDS => json_encode($postData),
    CURLOPT_HTTPHEADER => array(
        'Content-Type: application/json'
    ),
));

$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>

方法二:手动拼接JSON字符串(需注意转义)

如果要手动编写JSON字符串,需要用双引号包裹整个内容(PHP会解析双引号内的变量),同时内部的双引号必须转义:

<?php
$deger = 123;
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://serviceurl',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'POST',
    // 双引号包裹字符串,内部双引号转义,变量会被解析
    CURLOPT_POSTFIELDS => "{
        \"iprocessnumber\": \"$deger\",
        \"activationStatus\": \"SUCCESS\",
        \"code\": \"100\",
        \"message\": \"Test mesajı\"
    }",
    CURLOPT_HTTPHEADER => array(
        'Content-Type: application/json'
    ),
));

$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>

注意事项

优先使用方法一,因为json_encode()会自动处理所有特殊字符的转义,保证JSON格式的合法性,避免手动拼接时容易出现的语法错误。

内容的提问来源于stack exchange,提问作者RoyRoyFx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 14:55:15