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

PHP中实现带查询的curl -X POST命令及语法错误解决

解决PHP cURL语法错误并实现GraphQL POST请求

错误原因

你遇到的PHP Parse error: syntax error, unexpected identifier "curl_setopt"是因为第9行的$payload赋值语句末尾缺少分号,PHP要求每条语句必须以分号结尾,遗漏后会导致后续代码解析失败。

修正并优化后的代码

以下是修复语法错误,同时优化写法(避免手动转义引号、增加错误处理)的完整PHP脚本:

<?php
// API URL
$url = 'https://graphcdn.frankenergie.nl/';

// 创建cURL资源
$ch = curl_init($url);

// 用HEREDOC语法编写GraphQL查询,提升可读性
$query = <<<QUERY
query MarketPrices {
    marketPricesElectricity(startDate: "2023-01-12", endDate: "2023-01-15") {
        till
        from
        marketPrice
        priceIncludingMarkup
    }
    marketPricesGas(startDate: "2022-06-09", endDate: "2022-06-10") {
        from
        till
        marketPrice
        priceIncludingMarkup
    }
}
QUERY;

// 自动生成JSON格式的请求体,避免手动转义引号出错
$payload = json_encode(['query' => $query]);

// 设置POST请求参数
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);

// 设置请求头
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'User-Agent: Integromat/production'
]);

// 配置返回结果不直接输出,而是返回给变量
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// 执行请求并获取结果
$result = curl_exec($ch);

// 检查请求是否出现错误
if ($result === false) {
    echo 'cURL请求失败: ' . curl_error($ch);
} else {
    // 将JSON结果转为数组并输出,方便查看
    $response = json_decode($result, true);
    print_r($response);
}

// 关闭cURL资源
curl_close($ch);
?>

优化说明

  • 使用HEREDOC语法编写GraphQL查询,无需手动转义字符串内的引号,代码更易读维护。
  • 用json_encode生成请求体,自动处理JSON格式的转义规则,避免手动拼接JSON时出现语法错误。
  • 增加cURL错误检查,方便快速排查请求失败的原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 03:55:13