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前にすべての空白を削除することをお勧めします..正規表現については、このリンクを参照して同じことを行うことができます....

また、 levenshteinsimilar-textなどの文字列アルゴリズムを使用して一致率をチェックし、ほぼ同じ場合に 95% 程度のしきい値を維持することもできます。

于 2012-05-08T19:22:23.167 に答える