如何比较PHP中的两个HTML/JavaScript字符串是否相等?
我有一个PHP程序,它将网页的HTML/JavaScript内容存储在MySQL数据库中。内容是使用cURL获得的,然后经过如何比较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
$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'],它会产生一个不同的散列,即使是很小的改变。没有门槛。