脚本返回PHP警告:非法字符串偏移量“错误”

时间:2019-10-24 08:32:21

标签: php

我在WinSCP中使用朋友的脚本使用腻子,当我在脚本中“创建”时,它将返回此错误。我需要这个方面的帮助,我的朋友已经离开了一个星期。它将我定向到PHP文件中的“第86行”。我继续复制并粘贴了第86行周围的其他行,以提供一个更好的主意。

面对错误:

  

PHP警告:/root/100tb/includes/100tb.php中第86行的字符串偏移'error'非法

     

第86行是-

$errorMessage = (isset($result['data']['error']['message']))? $result['data']['error']['message'] : $result['data']['error'];

感谢所有帮助。

 }
    }

    curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);

    $response = curl_exec($handle);
    if (isset($response[0])) {
        if ($response[0] == '[' || $response[0] == '{') {
            $response = json_decode($response, TRUE);
        }
    }

    $result = array(
        'data' => $response,
        'info' => curl_getinfo($handle),
    );

    curl_close($handle);

    if ($result['info']['http_code'] !== 200) {
        $errorMessage = (isset($result['data']['error']['message']))? $result['data']['error']['message'] : $result['data']['error'];
        throw new Exception($errorMessage,$result['info']['http_code']);
    }

    return $result['data'];
}

2 个答案:

答案 0 :(得分:0)

  

PHP警告:/root/100tb/includes/100tb.php中第86行的字符串偏移'error'非法

表示在行86中访问数组error时没有键$result['data'],尤其是因为 $result['data']不是数组

我建议您通过var_dump检查$result的全部内容:

var_dump($result);

因此您可以查看它是否确实包含error键或其他数据。

答案 1 :(得分:-1)

尝试

$errorMessage = isset($result['data']['error']['message']) && count($result['data']['error']['message']) > 0 ? $result['data']['error']['message'] : $result['data']['error'];

代替

$errorMessage = (isset($result['data']['error']['message']))? $result['data']['error']['message'] : $result['data']['error'];

不确定,但是您可以使用isset检查数组长度。

我希望这可以与您的代码一起使用。