การลบเครื่องหมายอัญประกาศออกจากสตริง

PHP:
การลบเครื่องหมายอัญประกาศออกจากสตริง

วิธีทำ:

นี่คือตัวอย่างง่ายๆ โดยใช้ฟังก์ชันที่ติดตั้งมาพร้อมกับ PHP:

$quotedString = "'Hello,' she said, \"It's a fine day!\"";
$unquotedString = str_replace(array("'", "\""), '', $quotedString);
echo $unquotedString; // แสดงผล: Hello, she said, Its a fine day!

ง่าย, ใช่ไหม? ฟังก์ชัน str_replace() นี้จะรับอาร์เรย์ของอักขระเพื่อลบออกจากสตริง รวมถึงอัญประกาศคู่และอัญประกาศเดี่ยว

การทำความเข้าใจลึกซึ้ง

ย้อนกลับไปในวันแรกๆ ของ PHP, นักพัฒนาต้องระมัดระวังมากเกี่ยวกับอัญประกาศในสตริง เฉพาะเมื่อเพิ่มข้อมูลเข้าฐานข้อมูล อัญประกาศที่จัดการไม่ถูกต้องอาจนำไปสู่การโจมตีด้วยการฉีด SQL จึงมีการเพิ่มคุณสมบัติ magic quotes ที่ช่วยการหลบหนีข้อมูลนำเข้าโดยอัตโนมัติ แต่ภายหลังถูกยกเลิกและถอดออก เนื่องจากส่งเสริมการปฏิบัติการเขียนโค้ดที่ไม่ดีและปัญหาด้านความปลอดภัย

ตอนนี้ เราใช้ฟังก์ชันอย่าง str_replace() หรือ regex กับ preg_replace() สำหรับรูปแบบที่ซับซ้อนกว่า นี่คือตัวอย่าง regex:

$quotedString = "'Hello,' she said, \"It's a fine day!\"";
$unquotedString = preg_replace('/[\'"]/', '', $quotedString);
echo $unquotedString;

สำหรับข้อมูล JSON, คุณอาจใช้ json_encode() พร้อมตัวเลือกเช่น JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE เพื่อหลีกเลี่ยงสแลชพิเศษในอัญประกาศของคุณ

เมื่อดำเนินการ พิจารณากรณีขอบ เช่น ถ้าสตริงของคุณตั้งใจจะมีอัญประกาศบางประเภท เช่น บทสนทนาในเรื่องราวหรือหน่วยวัดเป็นนิ้ว บริบทมีความสำคัญ ดังนั้น เลือกใช้วิธีลบอัญประกาศไปตามวัตถุประสงค์การใช้ข้อมูล

ดูเพิ่มเติม