我有一个PHP程序,用于在mySQL数据库中存储网页的HTML / JavaScript内容。内容是使用cURL获得的,然后在作为长篇文章存储在表中之前经过$mysqli->real_escape_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)
第二个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';
答案 0 :(得分:3)
md5内容并保存。现在只需检查指纹
if($saved['fingerprint'] == $content['fingerprint'])
答案 1 :(得分:2)
如果您只需要比较内容,我的建议是创建数据校验和(使用md5或类似)并根据校验和比较数据。