如何比较PHP中的两个HTML/JavaScript字符串是否相等?

如何比较PHP中的两个HTML/JavaScript字符串是否相等?,php,html,string,comparison,equals,Php,Html,String,Comparison,Equals,我有一个PHP程序,它将网页的HTML/JavaScript内容存储在MySQL数据库中。内容是使用cURL获得的,然后经过$mysqli->real\u escape\u string()处理,然后作为长文本存储在表中 稍后,我必须再次使用cURL获取网页的HTML/JavaScript内容,并检索存储在数据库中的内容 此时,我需要比较它们,以查看代码中是否进行了更改。我试过使用: if ($saved == $content) return true; else return f

我有一个PHP程序,它将网页的HTML/JavaScript内容存储在MySQL数据库中。内容是使用cURL获得的,然后经过
$mysqli->real\u escape\u string()
处理,然后作为长文本存储在表中

稍后,我必须再次使用cURL获取网页的HTML/JavaScript内容,并检索存储在数据库中的内容

此时,我需要比较它们,以查看代码中是否进行了更改。我试过使用:

if ($saved == $content)
   return true;
else
   return false;
但是,即使没有对代码进行任何更改,也会返回false。第二次使用cURL时,我并没有逃逸字符串,所以这不是问题所在。我已经比较了这两段代码,但从视觉上看不出有什么不同

如何比较这两个字符串,以便准确返回是否进行了任何更改

我还应该提到,这两个文件都执行得很好,只是第二个文件总是返回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)
$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';
第二个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)
$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';
计算内容的散列并保存它。现在检查一下指纹

if($saved['fingerprint'] == $content['fingerprint'])
计算内容的散列并保存它。现在检查一下指纹

if($saved['fingerprint'] == $content['fingerprint'])

如果您只需要比较内容,我的建议是创建数据校验和(使用或类似)并基于校验和比较数据。

如果您只需要比较内容,我的建议是创建数据校验和(使用或类似)并根据校验和比较数据。

我将如何使用/什么是校验和?
$hash=sha1($content)我还将修剪内容,并确保您不会同时获取标题(这会发生变化)。我将如何使用/what is checksum?
$hash=sha1($content)我也会修剪内容,确保你没有获取标题(这会改变)。啊,这就是我来Stackoverflow的原因!我试试这个。我没有想到散列内容,这让我很难过,但是,唉,谢谢你的建议!另外,介意详细说明指纹是什么吗?我不能只比较两个md5哈希吗?md5的结果有时被称为指纹/校验和@xeon:他是对的,请确保您md5没有标题的内容,因为它们会更改并导致不希望的结果。您能否澄清
['fingerprint']
的语法?这是否会自动创建md5指纹,或者我仍然需要对其进行哈希处理?$fingerprint=md5($content);“插入已保存的(url、内容、指纹)值(“$url”、“$content”、“$fingerprint”)”;只要确保内容没有标题,如果我没弄错的话,我想你可以使用$content['content'],它会产生一个不同的散列,即使是很小的改变。没有门槛。啊,这就是我来这里的原因!我试试这个。我没有想到散列内容,这让我很难过,但是,唉,谢谢你的建议!另外,介意详细说明指纹是什么吗?我不能只比较两个md5哈希吗?md5的结果有时被称为指纹/校验和@xeon:他是对的,请确保您md5没有标题的内容,因为它们会更改并导致不希望的结果。您能否澄清
['fingerprint']
的语法?这是否会自动创建md5指纹,或者我仍然需要对其进行哈希处理?$fingerprint=md5($content);“插入已保存的(url、内容、指纹)值(“$url”、“$content”、“$fingerprint”)”;只要确保内容没有标题,如果我没弄错的话,我想你可以使用$content['content'],它会产生一个不同的散列,即使是很小的改变。没有门槛。