我在这个例子中使用的是textarea,但我也试过上传文本文件,同样的事情发生......
基本上,只要您输入仅1个网址,此代码就会返回正确的结果。只要您输入另一个网址,前一个网址就会为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>");
}
}
}
?>
答案 0 :(得分:0)
如果$site
为www.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"
答案 1 :(得分:0)
好吧,首先要做的是在strpos失败时打印出htmlentities($ contents),这样你就可以手动检查它为什么不匹配。
另一件事是谷歌可能会像添加http:// etc。
一样更新网址使用字符串函数解析html也不安全,因为你无法信任站点,同样以同样的方式返回标签格式。你应该使用像domdocument或simplehtml
这样的库答案 2 :(得分:0)
问题解决了。
似乎除了最后一个之外的每个$ site都在末尾包含一个空字符,所以我使用了trim()函数来摆脱它。立即行动,感谢大家的建议。