หมวดสำหรับแบ่งบันความ รู้ต่างๆ จะมีหมวดย่อยๆ ในหมวดนี้ เช่น php, SQL, XML, CSS
Moderator: mindphp, ผู้ดูแลกระดาน
-
samsonnaze3
- PHP Hero Member
- โพสต์: 190
- ลงทะเบียนเมื่อ: 04/03/2012 1:06 am
โพสต์ที่ยังไม่ได้อ่าน
โดย samsonnaze3 »
ฟังก์ชั่น preg_match() นั้นเอาไว้ใช้ตรวจสอบว่า มีข้อความตาม pattern ที่กำหนด ใน text หรือไม่ และสามารถถอดข้อความออกมาได้
ตัวอย่างการถอดข้อความออกจาก Tag xml โดยดึง link youtube ออกมา
โค้ด: เลือกทั้งหมด
$xml_youtube = '<object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/tKIznHS-RKk&rel=1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/tKIznHS-RKk&rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object>'
preg_match('/value="(.+?)"></',$xml_youtube ,$matches);
echo $matches[1];
ผลลัพธ์
โค้ด: เลือกทั้งหมด
http://www.youtube.com/v/tKIznHS-RKk&rel=1
โดยที่ ตัว $matches จะคืนค่าออกมาเป็น Array โดยจะคืนค่าของผลลัพธ์ที่เราหา
ส่วน '/value="(.+?)"></' นั้นเป็น Pettle ที่เอาไว้ใช้หา โดยที่ เริ่มหาจากคำว่า value=" แล้วปิดท้ายด้วย "></ ซึ่ง ข้อความไหนก็ตามที่อยู่ใน value="" จะถูกถอดออกมาอยู่ในตัวแปร $matches
และ $xml_youtube เป็นข้อความที่ต้องการเอามาค้นหา
แก้ไขล่าสุดโดย
samsonnaze3 เมื่อ 13/06/2012 1:32 pm, แก้ไขไปแล้ว 1 ครั้ง.
-
mindphp
- ผู้ดูแลระบบ MindPHP
- โพสต์: 41232
- ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
-
ติดต่อ:
-
mindphp
- ผู้ดูแลระบบ MindPHP
- โพสต์: 41232
- ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
-
ติดต่อ:
โพสต์ที่ยังไม่ได้อ่าน
โดย mindphp »
หา embed ควรใช้
เพราะ value จากตัวอย่างมีมากกว่า 1
1 embed จะมี src แค่ 1 ตัวจึงเหมาะกว่า
-
supakwong
- PHP Jr. Member
- โพสต์: 25
- ลงทะเบียนเมื่อ: 18/07/2008 11:01 pm
-
ติดต่อ:
โพสต์ที่ยังไม่ได้อ่าน
โดย supakwong »
preg_match_all('#(prod" name=")(.*?)(">)#',$html,$***);
อยากถามความหมา่ยตรงนี้ครับ พอแนะนำได้ไหมครับว่ามันกำหนดว่ายังไงบ้าง อยากลองแกะ preg_match เดิมของ code นะครับ
-
mindphp
- ผู้ดูแลระบบ MindPHP
- โพสต์: 41232
- ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
-
ติดต่อ:
สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 68