0 && $_REQUEST['l'] < 1001) { $x = $_REQUEST['l'] - 1; $y = $x - ($x % $num) + 1; $query_order[$y / $num] = 1; $query_order[0] = $y; $slice = array_slice($query_order, 1, max (0, ($y / $num) - 1)); rsort ($slice); foreach ($slice as $array_key => $value) { $query_order[$array_key + 1] = $value; } } } if ($_REQUEST['se'] == 'g') { $error = ''; $fail_count = 0; for ($i = 0; $i < count($query_order); $i++) { @set_time_limit(30); $start = $query_order[$i]; $gl = ''; if ($_REQUEST['country'] == 'countryDE') { $gl = '&gl=de'; } $data = get_page ('ajax.googleapis.com', '/ajax/services/search/web?v=1.0&rsz=large&start=' . ($start - 1) . $gl . '&q=' . urlencode ($_REQUEST['q'])); $parser = json_decode($data, true); if ($_REQUEST['u'] && is_array($parser['responseData']['results'])) { unset ($results_detail); $position = $start; foreach ($parser['responseData']['results'] as $result) { if (substr_count (strtolower ($result['url']), $_REQUEST['u'])) $results[] = $position; if ($_REQUEST['s']) { $results_detail[$position]['title'] = $result['title']; $results_detail[$position]['url'] = $result['unescapedUrl']; } $position++; } } $results_total = $parser['responseData']['cursor']['estimatedResultCount']; if ($error && $fail_count < 5) { unset ($error); $i--; $fail_count++; } if ($results) break; } } elseif ($_REQUEST['se'] == 'y') { $error = ''; $fail_count = 0; for ($i = 0; $i < count($query_order); $i++) { @set_time_limit(30); $start = $query_order[$i]; $data = get_page ('api.search.yahoo.com', '/WebSearchService/V1/webSearch?appid=keywordtracker&query=' . urlencode ($_REQUEST['q']) . '&start=' . $start . '&results=50'); $parser = xml_parser_create('UTF-8'); xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); xml_parse_into_struct($parser, $data, $vals, $index); xml_parser_free($parser); if ($index['ERROR']) { $error = $vals[$index['MESSAGE'][0]]['value']; } if ($_REQUEST['u'] && is_array($index['URL'])) { unset ($results_detail); $position = $start; foreach ($index['URL'] as $url_key) { if ($vals[$url_key]['level'] == 3) { if (substr_count (strtolower ($vals[$url_key]['value']), $_REQUEST['u'])) $results[] = $position; if ($_REQUEST['s']) { $results_detail[$position]['title'] = $vals[$url_key - 2]['value']; $results_detail[$position]['summary'] = $vals[$url_key - 1]['value']; $results_detail[$position]['url'] = $vals[$url_key]['value']; } $position++; } } } $results_total = $vals[$index['RESULTSET'][0]]['attributes']['TOTALRESULTSAVAILABLE']; if ($error && $fail_count < 5) { unset ($error); $i--; $fail_count++; } if ($results_detail) { if ($_REQUEST['s']) { $position_key = max(0, min ($results[0] - 4, count ($results_detail) - 10)); $results_detail = array_slice ($results_detail, $position_key, 10); foreach ($results_detail as $result) { $position_key++; $results_new[$position_key] = $result; } $results_detail = $results_new; } break; } } } elseif ($_REQUEST['se'] == 'b') { $error = ''; $fail_count = 0; for ($i = 0; $i < count($query_order); $i++) { @set_time_limit(30); $start = $query_order[$i]; $data = get_page ('www.bing.com', '/search?q=' . urlencode ($_REQUEST['q']) . '&first=' . $start . '&count=10&format=rss'); $parser = xml_parser_create('UTF-8'); xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); xml_parse_into_struct($parser, $data, $vals, $index); xml_parser_free($parser); unset ($results_detail); $position = $start; if (is_array ($index['LINK'])) { foreach ($index['LINK'] as $url_key) { if ($vals[$url_key]['level'] == 4 && !strpos($vals[$url_key]['value'], 'www.bing.com:80/search')) { if (substr_count (strtolower ($vals[$url_key]['value']), $_REQUEST['u'])) $results[] = $position; if ($_REQUEST['s']) { $results_detail[$position]['title'] = $vals[$url_key - 1]['value']; $results_detail[$position]['summary'] = $vals[$url_key + 1]['value']; $results_detail[$position]['url'] = $vals[$url_key]['value']; } $position++; } } } if ($results) break; if ($error && $fail_count < 5) { unset ($error); $i--; $fail_count++; } } } if (!$results) $results[] = 9999; $output['results'] = implode ('|', $results); if ($error) $output['error'] = $error; if ($_REQUEST['t']) { $output['total'] = $results_total; echo serialize($output); } elseif ($_REQUEST['s']) { $output['total'] = $results_total; $output['detail'] = $results_detail; echo serialize ($output); } else { echo serialize ($output); } ?>