注意:未定义的偏移量:1在prestashop webservice的webservice/dispatcher.php第36行中

注意:未定义的偏移量:1在prestashop webservice的webservice/dispatcher.php第36行中,php,api,flutter,prestashop,Php,Api,Flutter,Prestashop,我正在使用PrestashopWebService api构建一个关于颤振的应用程序。然而,当我尝试从api url获取数据时,我收到了响应,其中PHP的通知为“notice:Undefined offset:1 in/webservice/dispatcher.PHP on line 36”以及对象列表。这使我无法将对象解码为json 我转到那个文件,错误就在这个块中:(第35、36、37行) if(isset($\u服务器['HTTP\u授权])&预匹配('/Basic\s+(.*)$/i'

我正在使用PrestashopWebService api构建一个关于颤振的应用程序。然而,当我尝试从api url获取数据时,我收到了响应,其中PHP的通知为“notice:Undefined offset:1 in/webservice/dispatcher.PHP on line 36”以及对象列表。这使我无法将对象解码为json

我转到那个文件,错误就在这个块中:(第35、36、37行)

if(isset($\u服务器['HTTP\u授权])&预匹配('/Basic\s+(.*)$/i',$\u服务器['HTTP\u授权],$matches)){
list($name,$password)=分解(':',base64_解码($matches[1]);
$\u服务器['PHP\u AUTH\u USER']=strip\u标记($name);
}
当我试图在邮递员或浏览器中获得结果时,根本没有显示任何通知

有谁能帮我摆脱这个通知或任何破解这个物体的方法吗?提前感谢

PHP的语法采用赋值运算符的右侧=,对其进行分解,然后将子项赋值给其中的变量

类似这样的列表语句:

list($name,$password)=$some\u数组;
希望
$some_数组
是一个数字数组,其中至少包含两个子数组。如果只有1,PHP会抱怨缺少第2项(偏移量1)。在您的情况下,explode调用需要在结果中使用
冒号,但情况可能并非如此

为了防止这种情况,您可以修改它,使其不直接破坏调用结果的结构。像这样:

if(isset($\u服务器['HTTP\u授权])&预匹配('/Basic\s+(.*)$/i',$\u服务器['HTTP\u授权],$matches)){
$name_和_password=explode(“:”,base64_decode($matches[1]);
$name=$name_和_密码[0]??“”;//如果未设置,默认为空字符串“”
$password=$name_和_password[1]??“”;//如果未设置,默认为空字符串“”
$\u服务器['PHP\u AUTH\u USER']=strip\u标记($name);
}

你能在
列表($name,$password)
行之前添加一个
var_dump($matches)
吗?@KoalaYeung它返回一个数组:
array(2){[0]=>string(50)“Basic M1E0OVE1VDhHTkJGVjdNUFI3SEc5RlQ0RVA5MlE0WkI=“[1]=>string(44)”m1e0ove1vdhhtkjgjdnu3sec5rla5rva5mle0wki=”
base64_decode(“M1E0OVE1VDhHTkJGVjdNUFI3SEc5RlQ0RVA5MlE0WkI=”)
返回
3Q49Q5T8GNBFV7MPR7HG9FT4EP92Q4ZB
。您的
列表($name,$password)
没有颜色
,因此您遇到了错误。