仅显示最后一个结果


Only last result being displayed

我希望在多个网站上搜索单个数据。数据正在正确拉取,但它仅针对最后一个搜索案例显示。单个搜索工作正常。

例如,我进行了三次搜索,仅显示第三个结果 - 其余结果为空白。

谁能说出一些启示?

if($_POST)
{
$domains = explode("'n", $_POST[domains]);
foreach($domains as $domain)
{
$domain = explode('|', $domain);
$domain = str_replace(array('http://','/'),'',$domain[0]);
echo '<b>Providing Data for '. $domain .'.. </br></br>';

unset($urls);
unset($url);
unset($blacklinka[1]);
unset($blacklinka);
unset($AskApache_result);
unset($regex);
$domainshort = str_replace('www.','',$domain);
$domainshortdash = str_replace('.','-',$domainshort);

$urls[] = 'http://data.alexa.com/data?cli=10&dat=snbamz&url=' . $domain;


$ch = curl_init();
    foreach($urls as $url)
{
curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US;     rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
    curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
    curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($ch, CURLOPT_REFERER, 'http://www.google.com/');
    $AskApache_result = curl_exec ($ch);

$regex = '/LINKSIN NUM="(.+?)"/';
preg_match($regex,$AskApache_result,$blacklinka);
echo '</br>';
echo 'Indexed Backlinks: '. $blacklinka[1];
    echo '</br></br>';

    flush();
    ob_flush();
}
}
}

我已经尝试过您的代码,它对我来说很好用。所以我有一些关于为什么它不适合你的想法。

  • 由于foreach($domains as $domain)循环确实unset($urls),如果使用$urls的循环实际上位于foreach之外,那么它将只包含最后一个循环。
  • 你在'n上分解$domains,然后在|$domain,这可能表明你有一个奇怪的输入格式,它可能不像你打算的那样工作,所以查看循环中的$domains$domain可能会让你了解你从输入中实际得到的东西。

据我所知,卷曲和preg_match工作正常。因此,要么您没有执行所有 curl 调用(由于未设置),要么您输入的域列表没有按预期进行解释。