我收到此错误的原因
PHP Notice: Undefined index: url on line 40
从我的代码中,代码用于从网站获取电影的链接,但是当我尝试抓取链接时,我得到了该错误,因此有人指出我正确的方向解决问题。
public function getMovieEmbeds($title) {
$misc = new Misc();
//Step1 find key
$movie_url = null;
$html = file_get_html('http://www.primewire.ag/');
$elements = $html->find('input[name=key]',0);
$key = null;
if(!is_null($elements)){
$key = $elements->value;
}
if(is_null($key)){
return array();
}
//Step2 do search...
$search = urlencode($title);
$html = file_get_html("http://www.primewire.ag/index.php?search_keywords=$search&key=$key&search_section=1");
$elements = $html->find(".index_item h2");
if(!is_null($elements)){
foreach($elements as $element){
$element_title = strtolower(strip_tags(trim(preg_replace('/\s*\([^)]*\)/', '', $element->innertext))));
if ($element_title == strtolower(trim($title))) {
$parent = $element->parent();
$movie_url = "http://primewire.ag".$parent->href;
break;
}
}
}
if (is_null($movie_url)) {
return array();
}
//Step3 get embeds
$html = file_get_html($movie_url);
$elements = $html->find(".movie_version_link a");
if(!is_null($elements)){
foreach($elements as $element){
$encoded_url = "http://primewire.ag".$element->href;
$query = parse_url($encoded_url, PHP_URL_QUERY);
parse_str($query,$op);
error came from ---> $link = base64_decode($op["url"]); <--- here
if(strpos($link, "affbuzzads")===false && strpos($link, "webtrackerplus")===false){
$embed = $misc->buildEmbed($link);
if ($embed) {
$embeds[] = array(
"embed" => $embed,
"link" => $link,
"language" => "ENG",
);
}
}
}
return $embeds;
}
return array();
}
有人可以帮助我,这将是最有帮助的
答案 0 :(得分:2)
parse_str返回URL上的参数数组,就像它在$ _GET数组中一样。
如果您使用的网址带有参数'url',则只会包含'url'值
E.g。这是:
http://example.com/?url=urlvalue
因此,如果$ element-&gt; href(因此$ encoded_url和$ query)中不包含名为'url'的参数,则不会在'url'的$ op数组中获得索引
请参阅此处的文档:http://us1.php.net/manual/en/function.parse-str.php