我有一个页面,当页面加载时,textarea填充了数据库中的值。我想看看是否修改了该值。 我使用jquery从textarea获取值:
fields.care_advice_message = $('#care_advice_message').val();
并通过ajax发送:
$.ajax({
type: "POST",
url: "page.php",
data: fields
}).done(function(data){ ..}
在page.php上,我将通过ajax接收的字符串与数据库中的字符串进行比较,每次收到字符串都不同。
if(trim($_POST['care_advice_message']) !== trim($organization_data['care_advice_message']))
{
echo " different " . strlen($_POST['care_advice_message']) . " " . strlen($organization_data['care_advice_message']);
}
else {
echo " same ";
}
我使用var_dump查看page.php上的字符串
var_dump($_POST['care_advice_message']);
var_dump($organization_data['care_advice_message']);
我收到了这个:
<pre class='xdebug-var-dump' dir='ltr'><small>string</small> <font color='#cc0000'>'text line new text line another line'</font> <i>(length=36)</i>
</pre><pre class='xdebug-var-dump' dir='ltr'><small>string</small> <font color='#cc0000'>'text line new text line another line'</font> <i>(length=38)</i>
为什么来自ajax帖子的字符串只有“&amp;#10;” unicode但是从数据库我有“&amp;#13;”太?
如果我提交表单,那么字符串是相同的。
答案 0 :(得分:0)
我认为这取决于你的字符串在插入数据库之前是如何受到威胁的。 您可能知道,字符串中的新行可以用&#34; \ r \ n&#34;进行符号化。
&#34;&安培; #10;&#34; &LT; =&GT; \ n(0x10)
&#34;&安培; #13;&#34; &LT; =&GT; \ r \ n(0x13)
因此,在您的用户的文本数据中,不存在回车符。 您能告诉我们您的文本如何插入数据库吗?
答案 1 :(得分:0)
替换所有空格
str_replace(" ","",$yourstring)
和新行字符
str_replace("\n","",$yourstring);
并通过
将其转换为小写strtolower($yourstring);
然后尝试比较它。