php 循环函数中的多个 returns
multiple returns in a php loop function
我正在构建一个网络爬虫,我在其中循环遍历多个页面,每页 20 个项目。
我可以return这个还是应该使用echo?我现在使用 echo 但想切换到 return 以更好地控制每个文件的输出(在多个页面中使用此功能)。
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)->find('.item-description2', 0)->find('.title', 0)->find('a', 0)->getAttribute('href', 0);
if(!empty($content)){
echo $item . ". <a href='" . $url_items . $content_url . "'>" . $content ."</a><br/>";
}
}
}
}
sleep(2);
}
}
我正在回显 link,但我只想要值,以便我可以在我的其他页面中控制它。
我想 return $content
和 $content_url
,如何将其更改为 return?
创建一个数组然后return它。
这里有一个例子:
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)->find('.item-description2', 0)->find('.title', 0)->find('a', 0)->getAttribute('href', 0);
if(!empty($content)){
$data['content'] = $content;
$data['content_url'] = $content_url;
array_push($dataArr,$data);
}
}
}
}
sleep(2);
}
return $dataArr;
}
我正在构建一个网络爬虫,我在其中循环遍历多个页面,每页 20 个项目。
我可以return这个还是应该使用echo?我现在使用 echo 但想切换到 return 以更好地控制每个文件的输出(在多个页面中使用此功能)。
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)->find('.item-description2', 0)->find('.title', 0)->find('a', 0)->getAttribute('href', 0);
if(!empty($content)){
echo $item . ". <a href='" . $url_items . $content_url . "'>" . $content ."</a><br/>";
}
}
}
}
sleep(2);
}
}
我正在回显 link,但我只想要值,以便我可以在我的其他页面中控制它。
我想 return $content
和 $content_url
,如何将其更改为 return?
创建一个数组然后return它。
这里有一个例子:
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)->find('.item-description2', 0)->find('.title', 0)->find('a', 0)->getAttribute('href', 0);
if(!empty($content)){
$data['content'] = $content;
$data['content_url'] = $content_url;
array_push($dataArr,$data);
}
}
}
}
sleep(2);
}
return $dataArr;
}