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

PHP调用curl获取Jira数据失败,系统可执行但PHP报错求助

问题原因

你的代码报错是因为Windows命令行中&是命令分隔符,拼接的URL里包含&applicationType=stash&dataType=repository,shell_exec执行curl命令时,&会被解析为结束当前curl命令,把后面的applicationType=stash和dataType=repository当成独立命令执行,所以出现“未被识别为命令”的错误。同时curl没有正确获取到数据,返回null,触发json_decode的废弃警告。

解决方案

方案1:修复shell_exec的命令格式

把URL用转义的双引号包裹,让Windows命令行把整个URL当成一个参数:

<?php
function getJsonFromUrl($urlString) {
    // 用双引号包裹URL,转义内部双引号避免解析错误
    $urlData = shell_exec("curl --silent --request GET --url \"{$urlString}\" --user 'root:password' --header 'Accept: application/json'");
    $jsonData = json_decode($urlData, true);
    return $jsonData;
}

$data = array(
    'id' => '',
    'parent' => '',
    'issueId' => '1931461',
    'issueType' => ''
);

$url = "https://jira.myorg.com/rest/dev-status/1.0/issue/detail?issueId={$data['issueId']}&applicationType=stash&dataType=repository";
$jsonData = getJsonFromUrl($url);
?>

方案2:使用PHP原生CURL扩展(推荐)

直接用PHP的curl扩展替代shell_exec,既避免命令行字符解析问题,也更安全(防止命令注入风险):

<?php
function getJsonFromUrl($urlString) {
    $ch = curl_init($urlString);
    
    // 设置curl选项
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 将结果返回而不是直接输出
    curl_setopt($ch, CURLOPT_USERPWD, 'root:password'); // 基础认证信息
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Accept: application/json'
    ]);
    // 若Jira的SSL证书未被系统信任,可临时关闭验证(生产环境建议配置信任证书)
    // curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    
    $urlData = curl_exec($ch);
    $error = curl_error($ch);
    curl_close($ch);
    
    // 处理curl请求错误
    if ($error) {
        error_log("CURL错误: {$error}");
        return null;
    }
    
    $jsonData = json_decode($urlData, true);
    return $jsonData;
}

$data = array(
    'id' => '',
    'parent' => '',
    'issueId' => '1931461',
    'issueType' => ''
);

$url = "https://jira.myorg.com/rest/dev-status/1.0/issue/detail?issueId={$data['issueId']}&applicationType=stash&dataType=repository";
$jsonData = getJsonFromUrl($url);
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 04:50:08