我在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'];
}
答案 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检查数组长度。
我希望这可以与您的代码一起使用。