0

我在这个例子中使用了 textarea,但我也尝试过上传文本文件,同样的事情发生了......

基本上,只要您只输入 1 个 URL,此代码就会返回正确的结果。只要您输入另一个 URL,无论实际结果如何,前一个 URL 都会为 FALSE。为什么?

代码:

<?php

if(!$_POST){ 

?>

    <center>

    <h1>Bulk Index Checker v1.0</h1>
    <form method="post" enctype="multipart/form-data">
        <textarea id="list" name="list" rows="10" cols="50"></textarea>
        <br/>
        <input type="submit" value="Check 'em!" />
    </form>



    </center>


<?php
}

else{  



$lines = explode("\n", $_POST['list']);

foreach($lines as $site) {

    echo($site); echo("<br>");

    $url='http://www.google.com/search?q=info:'.$site;


    //sleep(3);

        $contents = file_get_contents($url);  // nije do ovoga




        if (strpos($contents,'<h3 class="r"><a href="/url?q='.$site)!=FALSE) {
            echo("YES");
            echo("<br>");
        }
        else{
        echo("NO");
        echo("<br>");
        }
}

}

?>
4

3 回答 3

0

好吧,首先要做的是在 strpos 失败时打印出 htmlentities($contents) 以便您可以手动检查它为什么不匹配。

另一件事是谷歌可能会更新网址,例如附加 http:// 等。

此外,使用字符串函数解析 html 也不安全,因为您不能相信网站总是返回格式相同的标签。你应该使用一些像domdocumentsimplehtml这样的库

于 2013-06-24T08:59:36.710 回答
0

问题解决了。

似乎除了最后一个 $site 之外的每个 $site 最后都包含一个空字符,所以我使用了 trim() 函数来摆脱它。现在可以用了,谢谢大家的建议。

于 2013-06-24T14:48:04.477 回答
0

如果$sitewww.mysite.de

如果我在谷歌上搜索

http://www.google.com/search?q=info:www.mysite.de

我得到答案

<h3 class="r"><a href="http://www.mysite.de/"

这不一样

<h3 class="r"><a href="/url?q='.$site)

扩展到

<h3 class="r"><a href="/url?q=www.mysite.de"
于 2013-06-24T08:58:14.673 回答