ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programming[+1ทุกคนครับ]งงกับ preg_replace ใน PHP ครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: [+1ทุกคนครับ]งงกับ preg_replace ใน PHP ครับ  (อ่าน 1282 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
DewChelsea
ก๊วนเสียว
*

พลังน้ำใจ: 9
ออฟไลน์ ออฟไลน์

กระทู้: 422



ดูรายละเอียด เว็บไซต์
« เมื่อ: 20 กุมภาพันธ์ 2014, 22:52:55 »

ผมไม่ทราบว่า replace ธรรมดา กับ preg_replace ต่างกันอย่างไรครับ

และยัง งง กับ element ของ preg_replace เช่น
function encode($str) {
return preg_replace('/(.)\1*/e', 'strlen($0) . $1', $str);
}

ขอยิงคำถามเลยนะครับ
1. replace ธรรมดา กับ preg_replace ต่างกันอย่างไรครับ
2. /(.)\1*/e = อะไรครับ เราสามารถแก้ตัวอักษรพวกนี้ได้ยังไงบ้างครับ
3. $0,$1 มันคืออะไรครับ ทำไมมันไม่ต้องประกาศค่าตัวแปรก่อนที่จะใช้ครับ
ขอบคุณครับ  Embarrassed
« แก้ไขครั้งสุดท้าย: 20 กุมภาพันธ์ 2014, 22:53:51 โดย DewChelsea » บันทึกการเข้า

icez
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 296
ออฟไลน์ ออฟไลน์

กระทู้: 2,886



ดูรายละเอียด
« ตอบ #1 เมื่อ: 20 กุมภาพันธ์ 2014, 23:11:19 »

1) replace ธรรมดาคือการเปลี่ยน ข้อความแบบตายตัว จาก a ไปเป็น b
ส่วน preg(หรือ regular expression อื่นๆ) สามารถระบุเป็น pattern ได้ครับ ข้อความต้นฉบับไม่จำเป็นต้องตายตัว

2) มันคือ pattern ครับ รูปแบบชื่อ regular expression ค่อนข้างซับซ้อนและอ่านยากพอควร

3) มันไม่ใช่ตัวแปรใน php ครับ แต่เป็นผลที่ได้จากการ match pattern ที่อยู่ในวงเล็บ $0 คือข้อความทั้งหมดที่ตรง ส่วน $1 คือวงเล็บอันแรก $2 $3 $4 ก็ไล่ไปเรื่อยๆ
บันทึกการเข้า

THZHost SSD Hosting ไทย/สิงคโปร์ พร้อม firewall ป้องกันการยิงเว็บ + scan ไวรัสในเว็บ
DewChelsea
ก๊วนเสียว
*

พลังน้ำใจ: 9
ออฟไลน์ ออฟไลน์

กระทู้: 422



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 20 กุมภาพันธ์ 2014, 23:22:10 »

1) replace ธรรมดาคือการเปลี่ยน ข้อความแบบตายตัว จาก a ไปเป็น b
ส่วน preg(หรือ regular expression อื่นๆ) สามารถระบุเป็น pattern ได้ครับ ข้อความต้นฉบับไม่จำเป็นต้องตายตัว

2) มันคือ pattern ครับ รูปแบบชื่อ regular expression ค่อนข้างซับซ้อนและอ่านยากพอควร

3) มันไม่ใช่ตัวแปรใน php ครับ แต่เป็นผลที่ได้จากการ match pattern ที่อยู่ในวงเล็บ $0 คือข้อความทั้งหมดที่ตรง ส่วน $1 คือวงเล็บอันแรก $2 $3 $4 ก็ไล่ไปเรื่อยๆ


ขอบคุณมากเลยครับ  wanwan017 wanwan017 wanwan017
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์