0

我需要在页面发生变化时向我发送电子邮件的脚本。这是我的代码,但它不能正常工作。我怎样才能做到这一点才能正常工作?

$new_page = file_get_contents('http://www.google.com');

$new_page_in = mysql_real_escape_string($new_page);
mysql_query("UPDATE new SET text='$new_page_in' WHERE id='1'") or die (mysql_error());

$sql1 = mysql_query("SELECT text FROM new WHERE id='1'") or die (mysql_error());
list($new_out) = mysql_fetch_row($sql1);

$sql2 = mysql_query("SELECT text FROM old WHERE id='1'") or die (mysql_error());
list($old_out) = mysql_fetch_row($sql2);    

if($new_out != $old_out)
{
    $new_page = file_get_contents('http://www.google.com');
    $new_page_in = mysql_real_escape_string($new_page);
    mysql_query("UPDATE old SET text='$new_page_in' WHERE id='1'") or die (mysql_error());
    echo "Text is diferent.";
            //send email
}
else
{
    echo "Text isn't diferent";
}
4

2 回答 2

0

尝试使用比较

strcmp($new_out, $old_out) == 0

测试它们是否相同。

另外我建议将页面内容的哈希值存储在数据库中,而不是整个字符串。所以存储

hash('md5', $new_page) 

$new_page如果您想查看是否有任何更改,请在数据库中而不是比较哈希值。如果需要,也可以存储内容,但不要比较内容。

于 2012-05-08T19:22:00.997 回答
0

我会建议在存储 htmlcontent 时添加htmlentities并在存储之前删除所有空格......你可以参考这个链接让正则表达式做同样的事情......

您还可以使用levenshtein类似文本之类的字符串算法来检查匹配百分比并保持一些阈值可能 95% 几乎相同

于 2012-05-08T19:22:23.167 回答