- Back to Home »
- backslash , escape sequence คือ อะไร , escape sequences , escape sequences php , function , php , str_replace »
- str_replace กับปัญหา “\” (backslash)
Posted by : caeruz
วันพุธที่ 20 มีนาคม พ.ศ. 2556
พอดีวันนี้ลองเข้าไปภายในกลุ่มของ ชมรมคนทำเว็บ ก็ไปเจอข้อความน่าสนใจเกี่ยวกับปัญหาที่ตั้งกระทู้ถามไว้ว่า
ผมติดปัญหาแก้ไม่ได้ครับ พอดีในไฟล์ PHPลองดูจากรูปด้านบนจริงๆ แล้วก็น่าจะถูกต้องแล้ว แต่ลองนำข้อมูลมาทดสอบดู เอ้ยย ไม่ได้จริงๆ ด้วยแหะ ปัญหานี้เราก็ไม่เคยเจอซะด้วยซิ ก็เลยลองไปค้นหาข้อมูลดู พบว่า ถ้าเราต้องการ \ เป็นตัวแปลหนึ่งตัวต้องใช้ \\ สองตัว ตามตัวอย่าง เช่น
"
$xxx = “aaaa\bbbb”;
ผมต้องการให้ ตัว “\” (backslash) เปลี่ยนเป็นตัว _ (underscore)
ผมลองใช้ str_replace(”\”,”_”,$xxx);
"
ไม่ได้ครับ มีใครแนะนำวิธีที่ถูกต้อง หรือวิธีอื่นบ้างครับ ขอบคุณครับ .
ถ้าเราต้องการให้ตัวแปล a เก็บค่า \ ตัวก็ใช้ \\ สองตัว ตัวอย่างเช่น
$a="\"; // วิธีที่ผิด $a="\\"; // วิธีที่ถูกและ ถ้าต้องการ \\ สองตัว ก็ให้ใช้ \\\\ สี่ตัว
และถ้าเราต้องการ ' " ! @ # $ % ^ & * ( ) { } [ ] \ | + - ตัวใดตัวหนึ่งขึ้นมา ให้ใส่ \ แล้วตามด้วยตัวอักษระพิเศษเหล่านี้ (บางตัวอาจสร้างได้โดยไม่ต้องใส่ \ นำหน้า) ตัวอย่างเช่น
\! จะได้ ! \' จะได้ ' \" จะได้ "
สำหรับปัญหานี้ตามด้านบน วิธีใช้งานที่ถูกต้อง
1. str_replace(“\\”,”_”,$xxx); 2. preg_replace(‘{\\\}’, ‘_’, $xxx)หลักการคือ ใช้ \ นำหน้า อักษรพิเศษนั่งเอง
ข้อมูลเพิ่มเติม
http://php.net/manual/en/regexp.reference.escape.php
Hello Test Recent Comments
ตอบลบTHANK YOU
ตอบลบ
ตอบลบWell thanks for the information, do not forget to visit my blog too.
Gardening Tips Gardening Advice
ตอบลบThanks for sharing this quality information with us. I really enjoyed reading.
Gardening Advice Best Advice for Sports