วิธีเปรียบเทียบสตริงขนาดใหญ่ใน PHP

ทำงานในโครงการที่ฉันต้องเปรียบเทียบ 2 สาย อันหนึ่งมาจากฐานข้อมูลและอีกอันมาจากตัวแปรโพสต์ดังนั้น

หากสตริงมีขนาดเล็ก if($var1 == $var2) ก็ทำงานได้ดี แต่ถ้าสตริงมีขนาดใหญ่ สิ่งนี้จะไม่ทำงานได้ดีหากทั้งคู่เหมือนกันแม้ว่าจะอยู่ในเงื่อนไขอื่นและสตริงนั้นมาจากเมนู PHP HTML Editor เช่น ไฟล์คำ

ตัวอย่างของสตริงที่มีขนาดเล็กมากซึ่งฉันต้องการบันทึกในฐานข้อมูลหากค่าที่โพสต์ไม่เท่ากับค่าฐานข้อมูล ฉันใช้ 2 ฟังก์ชันสำหรับการแปลงสตริงด้วย

mysql_real_escape_string()

nl2br(stripslashes())

<span style=\"font-size: 24px; font-weight: bold; text-indent: -23.799999237060547px; font-family: Symbol; background-color: yellow;\"></span><span style=\"font-size: 24px; font-weight: bold; text-indent: -23.8px; background-color: yellow; color: red;\">1</span><span style=\"font-size: 24px; font-weight: bold; text-indent: -23.8px; background-color: yellow; color: red;\"><br /></span>

person M Patel    schedule 28.06.2013    source แหล่งที่มา
comment
คุณช่วยยกตัวอย่างเมื่อมันไม่ทำงานได้ไหม?   -  person Mr. Llama    schedule 28.06.2013
comment
สตริงของคุณถูกตัดทอนในฐานข้อมูลหรือไม่ BIG มีความหมายต่อคุณอย่างไร? วางโค้ดด้วยสตริงเล็กๆ เพื่อให้เราเข้าใจสิ่งที่คุณกำลังทำอยู่   -  person CodeAngry    schedule 28.06.2013


คำตอบ (2)


ลองสิ่งนี้

$var1 //string1
$var2 //string2

if(strcmp($var1, $var2))
person Deepak Mallah    schedule 28.06.2013

คุณสามารถ md5 ได้แล้วเปรียบเทียบเวอร์ชัน md5...

คุณเก็บ md5 ของสตริงไว้ในฐานข้อมูล จากนั้นคุณ md5 เป็น POST

person Abdelilah    schedule 28.06.2013
comment
ไม่เลว แต่ก็หมายความว่าคุณไม่เก็บสตริงที่ชัดเจนไว้ในฐานข้อมูลเว้นแต่คุณจะทำซ้ำข้อมูล ชัดเจนหนึ่งครั้งและอีกครั้งใน md5 - person Aralicia; 28.06.2013