我正在使用preg_match_all并返回此错误:
Notice: Undefined offset: 0 in B:\xampp\htdocs\fogsy\link_searcher.php on line 98
这是第98行:
$server_name=$matches[0][1]."/";
这是我的功能: 它用于从html正文中检索链接。
function GetLinks($body_str,$parent_url)
{
$url_list=array();
preg_match_all('/http:\/\/(.*)\//iU', $parent_url, $matches, PREG_SET_ORDER);
$server_name=$matches[0][1]."/";
preg_match_all('/< *a.*href *= *[\'"](.*)[\'"].*>(.*)< *\/a *>/iU', $body_str, $matches, PREG_SET_ORDER);
for($count=0;$count<count($matches);$count++)
{
$text=$matches[$count][2];
if(strpos(strtolower($matches[$count][1]),"http://")===false&&strpos(strtolower($matches[$count][1]),"www")===false)
$href="http://".$server_name.trim($matches[$count][1],"/");
else $href=$matches[$count][1];
$url_list[$text."_".$count]=$href;
}
return $url_list;
}
任何想法?
答案 0 :(得分:1)
这是因为你这里没有索引0:$server_name=$matches[0][1]."/";
的print_r($匹配);并看到。
这是因为$parent_url
像这样改变:
if(count($matches) > 0){
$server_name=$matches[0][1]."/";
}
else{
$server_name="";
}
但这会影响您的其他功能,最好将格式良好的$parent_url
发送到此功能。