PHP注意:未定义的索引:url

时间:2013-11-15 12:52:09

标签: php

我收到此错误的原因

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(); 
}

有人可以帮助我,这将是最有帮助的

1 个答案:

答案 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