检查内容是否为查找单词的网址

时间:2012-01-20 19:19:18

标签: php

我想要在内容中检查一个网站,该网站上有一些单词或者没有?

演示: http://codepad.viper-7.com/CQh18s

我试过:

    $url = "http://www.stackoverflow.com/":
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $contents = curl_exec($ch);
    curl_close($ch);

    $link    = array(
        "Top",
        "Questions",
        "Favorite",
        "Tags",
        "ago",
        "vote",
        "answers"
    );
    $resulet = "";
    foreach ($link as $val) {
        if (strstr($contents, $val)){
            $resulet += '1';
        }else{
            $resulet += '0';
        }
    }
    echo $resulet;
    if ($resulet != 0) {
        echo 'FALSE';
    }else{
        echo 'TRUE';
    }

2 个答案:

答案 0 :(得分:2)

在这种情况下,做一些初步调试很有帮助:

  1. 首先var_dump($contents);确保您获得所期望的可搜索内容。
  2. 执行var_dump($resulet);以确保生成的变量符合您的预期。
  3. 如果没有进一步澄清,您似乎正在尝试在$resulet中创建一个数字增量变量,但是使用字符串变量进行此操作。

    您的代码的cURL部分看起来不错,所以我怀疑如果您这样做,您将收到您期望的结果:

    $resulet = 0;
    foreach ($link as $val) {
      $resulet += strstr($contents, $val) ? 1 : 0;
    }
    var_dump($resulet);
    

    如果没有,您可能需要将strstr更改为stristr,以使搜索不区分大小写。

答案 1 :(得分:0)

您的代码中的主要问题是您不会让curl遵循重定向。正如@rdlowrey所说,只是倾销$contents var以意识到该页面有一个新的位置。

要让curl遵循重定向,只需在curl_exec

之前添加这些选项即可
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);

除此之外,为什么使用$resulet作为计数器而不将其视为整数呢?

$resulet = 0;
...
$resulet += 1;