微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php循环函数中的多个返回

如何解决php循环函数中的多个返回

我正在构建一个网络爬虫,在其中循环浏览多页,每页20个项目。

我可以返回此值还是应该使用echo?我现在使用echo,但想切换回去以对每个文件输出进行更多控制(在多个页面中使用此功能)。

function function1(){
    $link = $url;
    $url_items = $url2;
    for($pageNr=1; $pageNr<11; $pageNr++){
        $client = new \GuzzleHttp\Client(['base_uri' => $link]);
        $response = $client->request('GET','/zoeken',[
            'query' => [
                'page' => $pageNr
            ]
        ]);
        if($response->getStatusCode() === 200){
            echo "Pagina: " . $pageNr . "<br/>";
            for($item = 1; $item <=20; $item++){
                $url = $url . "?" . $pageNr;
                $html = file_get_html($url);
                if(!empty($html)){
                    $content = $html->find("#resultitem-$item",0)->find('.item-description2',0)->find('.title',0)->find('a',0)->plaintext;
                    $content_url = $html->find("#resultitem-$item",0)->getAttribute('href',0);
                    if(!empty($content)){
                        echo $item . ". <a href='" . $url_items . $content_url .  "'>" . $content ."</a><br/>";
                    }
                }
            }
        }
        sleep(2);
    }
}

我正在回显链接,但我只需要这些值,以便可以在其他页面中对其进行控制。

我想返回$content$content_url,如何更改为返回?

解决方法

制作一个数组,然后返回它。

以您的情况为例:

function function1(){
    $link = $url;
    $url_items = $url2;
    $dataArr = array();
    for($pageNr=1; $pageNr<11; $pageNr++){
        $client = new \GuzzleHttp\Client(['base_uri' => $link]);
        $response = $client->request('GET','/zoeken',[
            'query' => [
                'page' => $pageNr
            ]
        ]);
        if($response->getStatusCode() === 200){
            $data['pageNo'] = $pageNr;
            for($item = 1; $item <=20; $item++){
                $url = $url . "?" . $pageNr;
                $html = file_get_html($url);
                if(!empty($html)){
                    $content = $html->find("#resultitem-$item",0)->find('.item-description2',0)->find('.title',0)->find('a',0)->plaintext;
                    $content_url = $html->find("#resultitem-$item",0)->getAttribute('href',0);
                    if(!empty($content)){
                        $data['content']        = $content;
                        $data['content_url']    = $content_url;
                        array_push($dataArr,$data);
                    }
                }
            }
        }
        sleep(2);
    }
    return $dataArr;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。