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

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

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

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

กระทู้: 875



ดูรายละเอียด
« เมื่อ: 03 กรกฎาคม 2010, 23:33:08 »

ถ้าผมต้องการ เอา คำที่อยู่ใน <a href="" >คำที่ต้องการ </a> เขียนยังไงดีครับ
บันทึกการเข้า

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

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

กระทู้: 2,721



ดูรายละเอียด
« ตอบ #1 เมื่อ: 03 กรกฎาคม 2010, 23:42:12 »

ผมนำเสนอวิธีการอื่นครับ โดยไม่ต้อง ereg


$x = '<a href="link">Somethings link</a> <p>This is test paragraph</p> <b>Bold is here</b>';


echo strip_tags($x) . "\n";
echo strip_tags($x , '<p>' ) . "\n";  //Allow <p>
echo strip_tags($x , '<p><b>' ) . "\n"; //Allow <p> and <b>


Result
---------------
Somethings link This is test paragraph Bold is here
Somethings link <p>This is test paragraph</p> Bold is here
Somethings link <p>This is test paragraph</p> <b>Bold is here</b>


ข้อมูลเพิ่มเติม
http://th2.php.net/manual/en/function.strip-tags.php
« แก้ไขครั้งสุดท้าย: 03 กรกฎาคม 2010, 23:43:04 โดย kongpair » บันทึกการเข้า
medieval
สมุนแก๊งเสียว
*

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

กระทู้: 875



ดูรายละเอียด
« ตอบ #2 เมื่อ: 03 กรกฎาคม 2010, 23:46:29 »

ขอบคุณด้านบนครับ แต่ผมใช้กับคำสั่ง preg_match อันนี้อะครับ
preg_match_all('/<a\s+href\=[\"\\\']([^\"\\\']*)[\"\\\']/', $temp, $temp);

ถ้าอันบนจะเป้นคำสั่งเอาตรง ลิ้งออกมา ไปก๊อบเขามานะครับ แบบว่าไม่รู้เรื่องเลย งงมากครับเรื่องนี้เป็นอะไรที่ ไม่ตายตัวมากเลย
บันทึกการเข้า

SekRanger
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,564



ดูรายละเอียด
« ตอบ #3 เมื่อ: 03 กรกฎาคม 2010, 23:56:21 »

$temp ตัวที่ 2 หรือ parameter ตัวที่ 3 ของ preg_match_all เป็น Output นะครับ
ลอง var_dump หรือ print_r ออกมาดู

print_r($temp);

น่าจะเข้าใจคำตอบครับ
บันทึกการเข้า

medieval
สมุนแก๊งเสียว
*

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

กระทู้: 875



ดูรายละเอียด
« ตอบ #4 เมื่อ: 04 กรกฎาคม 2010, 00:02:10 »

 Tongue Tongue ขอโทษครับ ที่ผมอธิบายไม่ละเอียด   ด้านบนผมยกตัวอย่างว่า ถ้าใช้คำสั่งนั่น

<a href="xxx" >bbb </a>

จะได้ค่าออกมาคือ xxx ซึ่งผมไม่ต้องการ    แต่ผมต้องการ bbb นะครับ  อาจจะงงๆกับคำถามผมหน่อยก็ขอโทษด้วยครับ
บันทึกการเข้า

medieval
สมุนแก๊งเสียว
*

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

กระทู้: 875



ดูรายละเอียด
« ตอบ #5 เมื่อ: 04 กรกฎาคม 2010, 03:09:28 »

ช่วยหน่อยครับ ติดตรงนี้อะครับ ไม่ค่อยรู้เรื่อง Regular expression
บันทึกการเข้า

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

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

กระทู้: 2,721



ดูรายละเอียด
« ตอบ #6 เมื่อ: 04 กรกฎาคม 2010, 03:21:25 »

ผมเดาเอาว่า application ที่คุณ กำลังเขียนนั้น เกี่ยวข้องกับการ อ่านข้อมูลจากหน้าเว็บไซต์ แล้ว พยายามคัดเอาเฉพาะ ข้อมูล ที่เป็น link แบบนั้นใช่มั้ยครับ
แล้วทีนี้ code ที่คุณไป copy เขามาก็ถอดได้แต่ href elements  โดยใช้ preg_match_all ดังที่คุณ แสดงให้ดู


แต่คุณต้องการ text ที่อยู่ภายใน <a> tag  ก็เลยอยากจะรู้ว่า จะใช้ regular expression  แบบไหนดี


เอาล่ะครับ บอกผมก่อนว่า จะเอาไปทำอะไร....?
บันทึกการเข้า
medieval
สมุนแก๊งเสียว
*

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

กระทู้: 875



ดูรายละเอียด
« ตอบ #7 เมื่อ: 04 กรกฎาคม 2010, 03:27:09 »

เอาkw ไปทำเว็บครับ

preg_match_all('/<a\s[^>]*href=([\"\']??)([^\" >]*?)\\1[^>]*>(.*)<\/a>/siU', $temp, $temp);
ได้ละครับ กว่าจะได้ ยังไงก็ขอบคุณครับ
« แก้ไขครั้งสุดท้าย: 04 กรกฎาคม 2010, 03:27:48 โดย medieval » บันทึกการเข้า

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

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

กระทู้: 2,721



ดูรายละเอียด
« ตอบ #8 เมื่อ: 04 กรกฎาคม 2010, 03:30:23 »

ครับ ยินดีด้วย


แต่ผมแนะนำว่า  ลอง ศึกษา โมดูล  simple_html_dom ดูนะครับ  ฟรี และ ง่าย แถมเร็ว อีกทั้งยัง ทำอะไรได้มากมาย....
บันทึกการเข้า
medieval
สมุนแก๊งเสียว
*

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

กระทู้: 875



ดูรายละเอียด
« ตอบ #9 เมื่อ: 04 กรกฎาคม 2010, 03:33:54 »

เอ่อ ผมอยากถามอีกเรื่องครับ sql สร้างคอลัมได้เกิน 400ป่าวครับ  Tongue
บันทึกการเข้า

ohmohm
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 3,098



ดูรายละเอียด เว็บไซต์
« ตอบ #10 เมื่อ: 04 กรกฎาคม 2010, 21:04:39 »

HTML DOM ประมาณนี้หรือเปล่า
โค๊ด:
	$dom = new DOMDocument();
@$dom->loadHTML( $html ); // $html contains HTML string
$xpath = new DOMXPath($dom);
$tags = $xpath->query('//a');
foreach ($tags as $tag) {
if ($tag->hasAttribute('href')) {
$link = $tag->getAttribute('href');
echo ( $link );
}
}

พึ่งเห็น ไปเจอมา Using regular expressions to extract content
http://www.askaboutphp.com/25/regex-extract-content.html
« แก้ไขครั้งสุดท้าย: 10 กรกฎาคม 2010, 00:40:04 โดย ohmohm » บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์