当我尝试使用代码时:
function getusername($input){
//parse the result
preg_match("/<username>(.*)?<\/username>/", $input, $username);
return $username[1]; // Line 4
}
它给了我这个错误:
第4行未定义的偏移量。
答案 0 :(得分:3)
我在做什么大错?
好吧,似乎$username[1]
不存在。如果正则表达式不匹配,则可能会发生这种情况。我会改为:
function getusername($input){
preg_match("/<username>(.*)?<\/username>/", $input, $username);
if( count( $username ) > 0 ) {
return $username[1];
}
return false;
}
答案 1 :(得分:0)
这意味着您正在尝试访问数组中不存在的键。因此,您的$username
变量似乎没有密钥1.请记住,在编程中,您通常从0开始计数,因此第一个值为$username[0]
。
您可以通过调用var_dump
来显示您的用户名变量,如下所示:
var_dump($username);
答案 2 :(得分:-1)
有各种可能性。
1。)您尝试访问的站点不允许机器人或具有一些安全功能,可以阻止机器人访问该站点。要检查站点是否重定向,请打印/回显存储所有内容的变量。
2。)文本表达式没有以正确的格式写入,逻辑上不正确,它产生的结果为空集。