为什么我用于在box.com上复制文件夹的PHP Curl代码无法正常运行?
PHP Curl 文件夹操作返回1的问题解决
返回值为1是配置参数导致的现象,原因和修复方案如下:
- 核心原因:
CURLOPT_RETURNTRANSFER配置为false时,curl_exec执行成功会返回布尔值true,PHP 中布尔值true转为字符串后就是1,此时接口的响应内容会被直接输出,不会作为curl_exec的返回值。 - 潜在语法问题:你代码中
CURLOPT_POSTFIELDS直接写了JSON字面量,不符合PHP数组赋值语法,需要把JSON字符串用引号包裹,更推荐用数组转JSON的方式生成请求体,避免变量解析错误和格式问题。
修正后的代码示例
// 构造请求参数 $postData = [ 'name' => 'Newfolder', 'parent' => [ 'id' => $id ] ]; $postFields = json_encode($postData); $len = strlen($postFields); $options = [ CURLOPT_SSL_VERIFYPEER => true, CURLOPT_VERBOSE => false, CURLOPT_HEADER => false, CURLINFO_HEADER_OUT => true, CURLOPT_RETURNTRANSFER => true, // 修改为true,让curl_exec返回接口响应内容 CURLOPT_FOLLOWLOCATION => false, CURLOPT_HTTPHEADER => [ 'Authorization: Bearer CODE', 'Content-Type: application/json', 'Content-Length: '.$len, ], CURLOPT_POST => 1, CURLOPT_POSTFIELDS => $postFields ]; $ch = curl_init($url); curl_setopt_array($ch, $options); $result = curl_exec($ch); // 可选:补充错误排查逻辑 if (curl_errno($ch)) { $error = curl_error($ch); // 按需处理请求错误 } curl_close($ch);
内容的提问来源于stack exchange,提问作者Sangeetha Menon
相关产品推荐
相关产品推荐

