最初のページのキーワードはすべて正常な結果を返しますが、2 番目のページの値は受信されません。コードは次のとおりです。
返されたデータの意味がわかりません
2 ページ目が何であるべきかわかりません
2 ページ目の操作例がありません
2 ページ目がどうあるべきかわかりません
あなた 2 ページ目の操作例はありません
ここで見ることができます、http://hi.baidu.com/alexkh/ item/023a90dd18ca59c51a72b415
この関数は私が提案したばかりです
<?phpfunction search($keyword, $url, $page = 1){ $px = 0; $rsState = false; $enKeyword = urlencode($keyword); $firstRow = ($page - 1) * 10; if ($page > 2) { return array(0,0,0); } try{ $contents = file_get_contents("http://www.baidu.com/s?wd=$enKeyword&pn=$firstRow"); }catch (Exception $e){ echo '超时'; die(); } preg_match_all('/<table[^>]*?class="result"[^>]*>[\s\S]*?<\/table>/i', $contents, $rs); foreach ($rs[0] as $k => $v) { $px++; $v = str_replace(array( '<b>', '</b>' ), '', $v);//去除英文关键字的加粗标签 if (strstr($v, $url)) { $rsState = true; $arr_rank=array($px,$page,++$k); //print_r($arr_rank); return array($px,$page,++$k);//$px排名,$page为所在页数,++$k为关键词所在页数的具体位置 } } unset($contents); if ($rsState === false) { search($keyword, $url, ++$page); }}?><?$keyword1="百度优化";$site1="ppc.admin5.com";$keyword2="青岛酒店预订";$site2="www.hotel0512.com";$keyword3="青岛酒店预订";$site3="www.17u.com";$arr_paiming1=search($keyword1, $site1);print_r($arr_paiming1);echo '<br>';$arr_paiming2=search($keyword2, $site2);print_r($arr_paiming2);echo '<br>';$arr_paiming3=search($keyword3, $site3);print_r($arr_paiming3);echo '<br>';?>
実は、奇妙なのはこれです、print_r() のときはまだ値がありますが、戻るときは空です
再帰があるのに、再帰データを返さないのはなぜですか?
if ($rsState === false)
{
search($keyword, $url, ++$page);
}
少なくともそれは
if ($rsState === false)
{
return search( $keyword, $url, ++$page);
}
結果は次のようになりますか? (受信パラメータは検索入口に出力されます)
Baidu Optimization, ppc.admin5.com, 1
Array
(
[0] => 6
[1] => 1
[2] => 7
)
青島のホテル予約、www.hotel0512.com、1
青島のホテル予約、www.hotel0512.com、2
配列
(
[0] = & gt; 4
[1] = & gt; 2
[ 2] = > 5
)
青島ホテル予約、www.17u.com、1
配列
(
[0] => 2
[1] => 1
[2] => 3
)
再帰があるのに、再帰データを返さないのはなぜですか?
if ($rsState === false)
{
search($keyword, $url, ++$page);
}
少なくともそれは
if ($rsState === false)
{
return search( $keyword, $url, ++$page);
}
結果は次のようになりますか? (受信パラメータは検索入口に出力されます)
Baidu Optimization, ppc.admin5.com, 1
Array
(
[0] => 6
[1] => 1
[2] => 7
)
青島のホテル予約、www.hotel0512.com、1
青島のホテル予約、www.hotel0512.com、2
配列
(
[0] = & gt; 4
[1] = & gt; 2
[ 2] = > 5
)
青島ホテル予約、www.17u.com、1
配列
(
[0] => 2
[1] => 1
[2] => 3
)