1

Web ページの HTML/JavaScript コンテンツを MySQL データベースに格納する PHP プログラムがあります。コンテンツは cURL を使用して取得$mysqli->real_escape_string()され、長いテキストとしてテーブルに格納される前に適用されます。

後で、もう一度 cURL を使用して Web ページの HTML/JavaScript コンテンツを取得し、データベースに保存したものを取得する必要があります。

この時点で、それらを比較して、コードに変更が加えられているかどうかを確認する必要があります。私は使用してみました:

if ($saved == $content)
   return true;
else
   return false;

ただし、コードに変更が加えられていない場合でも、これは常に false を返します。2 回目に cURL を使用するときは、文字列をエスケープしていないので、それは問題ではありません。2 つのコードを比較しましたが、視覚的に違いを識別できません。

2 つの文字列を比較して、変更が行われたかどうかを正確に返すにはどうすればよいですか?

また、2 番目のファイルが常に false を返すことを除いて、両方のファイルが正常に実行されることにも言及する必要があります。

最初の PHP ファイル:

$url = "www.example.com";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$content = $mysqli->real_escape_string(curl_exec($ch));
curl_close($ch);

$query = "INSERT INTO saved (url, content)
              VALUES ('$url', '$content')";

$mysqli->query($query)

2 番目の PHP ファイル:

$url = "www.google.com";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$content = curl_exec($ch);
curl_close($ch);

$query = "SELECT content
          FROM saved
          WHERE url = '$url'";

$result = $mysqli->query($query);
$data = $result->fetch_assoc();
$saved = $data['content'];

if ($saved == $content)
    echo '1';
else
    echo '0';
4

2 に答える 2

3

コンテンツのMD5ハッシュを計算して保存します。今すぐ指紋をチェックしてください

if($saved['fingerprint'] == $content['fingerprint'])
于 2013-03-22T00:19:16.820 に答える
2

コンテンツを比較するだけの場合は、( MD5などを使用して) データのチェックサムを作成し、チェックサムに基づいてデータを比較することをお勧めします。

于 2013-03-22T00:19:49.713 に答える