我需要脚本在页面上发生变化时向我发送电子邮件。 这是我的代码,但它无法正常工作。我该怎样才能正常工作?
$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";
}
答案 0 :(得分:0)
尝试使用比较
strcmp($new_out, $old_out) == 0
测试它们是否相同。
另外,我建议只在数据库中存储页面内容的哈希值,而不是整个字符串。所以存储
hash('md5', $new_page)
数据库中的而不是$new_page
,如果要查看是否有任何更改,请比较哈希值。如果需要,也可以存储内容,但不要对内容进行比较。
答案 1 :(得分:0)
我会在存储htmlcontent时建议添加htmlentities
并在存储之前删除所有空格....
您可以参考this link以使正则表达式执行相同的操作....
此外,您可以使用levenshtein或similar-text之类的字符串算法来检查匹配百分比,并将几乎相同的阈值保持在95%