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