Thaimisc.com : เวลาพิมพ์ http://....com/ ใน webboard แล้วจะให้เป็น ลิงค์เลยทำได้อย่างไร?
ThaiMisc.Com : Free Webboard | Free GuestBook | Free Poll | Free Ecard Server | Free Java Chat Room | Advertising | Contact Us | Colocation | Web Hosting | เปิดร้านค้าฟรี


Category : Perl Tip's Print Article Only Print Aticle With Comment
เวลาพิมพ์ http://....com/ ใน webboard แล้วจะให้เป็น ลิงค์เลยทำได้อย่างไร?
เขียนโดย Thaimisc , 19-12-2001

สำหรับผู้ที่ใช้เว็บบอร์ด 2.2 และ 2.3 คลิกที่นี่

สวัสดีครับ เทคนิคนี้ก็มีคนขอมามากเหมือนกันนะครับ และผมก็พยายามหาวิธีที่ดีและง่ายที่สุดเท่าที่ผมจะสามารถหามาได้นะครับ คือเมื่อเวลาพิมพ์ http://www.name.com หากต้องการให้กลายเป็นลิงค์ทันทีในเว็บบอร์ดหรือข้อความต่าง ๆ นั้น ทำได้โดยอาศัยโดยหลักการที่ว่า การแทนที่ของคำ นะครับ อย่างเช่น ข้อความ ลองเข้ามาชมเว็บไซต์นี้ดูสิ "http://www.thaimisc.com/" และต้องการให้เป็นลิงค์ทันที
จะได้

ลองเข้ามาชมเว็บไซต์นี้ดูสิ http://www.thaimisc.com/

สามารถทำได้โดยซึ่งคุณจะต้องไปปรับแต่งให้ใช้ได้กับแต่ละโปรแกรมของคุณเองด้วยนะครับ
$msg
คือ ไว้เก็บข้อมูลของข้อความที่รบเข้ามาจากฟอร์ม

วิธีที่ 1
$msg
=~ s/(http://)(S+?)(/)/ <A HREF="http://$2" TARGET=_blank>http://$2 /isg;  

จากข้างต้นนี้ สามารถอธิบายได้ว่า
- ข้อความทั้งหมดของคุณที่กรอกเข้ามานั้น จะเก็บไว้ที่ $msg จากนั้น เรานำข้อความทั้งหมดนั้นมาเปรียบเทียบว่า มี http:// นำหน้า และมี / ต่อท่ายหรือไม่ หากว่ารับเข้ามาแล้ว มี ก็ให้นำข้อมูลที่มีอยู่ในกรอบ http://????/ (ข้อมูลคือ ????) นำมาแทนที่โดยส่งค่าข้อความ ???? ไว้ที่ $2 และทำการแทนค่าลงไปใน $msg

หมายเหตุ การทำข้างต้นนี้ผู้ป้อนข้อความเข้ามาจะต้องมี http:// นำหน้า และ / อยู่ท่าย www.name.com เสมอ

หรือในกรณีที่ต้องการรับ url นั้นๆมาและต้องการให้แสดงออกมาเป็นรูปภาพทันที ก็สามารถทำได้อย่างนี้นะครับ

วิธีที่ 2
$msg =~ s/("http://)(S+?)(")/ <A HREF="http://$2" TARGET=_blank>http://$2 /isg;  
$msg =~ s/(http://)(S+?)(.jpg)/<img src="http://$2.jpg">/isg;
$msg =~ s/(http://)(S+?)(.png)/<img src="http://$2.png">/isg;
$msg =~ s/(http://)(S+?)(.gif)/<img src="http://$2.gif">/isg;  

ในกรณีที่สองนี้ จะตรวจสอบว่า ข้อความที่เข้ามานั้น มี .gif .jpg .png เข้ามาหรือไม่ ถ้ามีให้แปลงกลายเป็นรูปภาพตาม url นั้นๆ และขอให้คุณสังเกตุด้วยว่า จากปกตินั้น ในวิธีแรก เราจะต้องพิมพ์ "http://name.com" ซึ่งจะมี " อยู่ดักทั้งหน้าและหลัง เพราะหากว่าเราใช้วิธีที่ 1 นั้น หากว่ามีคน พิมพ์ url ของรูปภาพเข้ามาละก็ มันก็จะคิดว่าให้ทำเป็นลิงค์ เช่น พิมพ์เข้ามาว่า http://www.thaimisc.com/logo.gif มันก็จะไปตรวจสอบว่า ตั้งแต่ http:// จนถึง / ตัวแรกที่มันเจอนั้น ให้ทำเป็นลิงค์ ซึ่งจะได้ http://www.thaimisc.com/logo.gif ซึ่งไม่นับรวม logo.gif ไปด้วย ดังนั้นเราจึงต้องจำกัดไว้ว่า เวลาจะทำเป็นลิงค์เข้ามานั้นจะต้องพิมพ์ " ไว้ทั้งหน้าและหลังของ url จะได้ "http://www.thaimisc.com" จะแสดงผลได้ดังนี้ http://www.thaimisc.com/

ำหรับผู้ที่ใช้เว็บบอร์ด 2.2 และ 2.3

ขั้นตอนแรกให้คุณมองเปิดไฟล์ addnew.pl และ addhtml.pl ขึ้นมาและหา ส่วนของโปรแกรมย่อยชื่อ checkdetail หรือ ใช้คำสั่งค้นหาโดยกด F3 (โดยทั่วไปจะใช้ F3) ให้หา sub checkdetail { ให้คุณหา

$msg =~ s/([url])(S+?)([/url])/A HREF="$2" TARGET=_blank>$2 /isg;
และ
$msg =~ s/([img])(S+?)([/img])/<IMG SRC="$2"> /isg; 

ซึ่งจากข้างต้นนี้จะยังเป็นการเขียนแบบวิธีเก่าคือจะต้องมี [url]????[/url] ครอบจึงจะทำเป็นลิงค์ได้ จากนั้นให้คุณ ลบ ข้อความนั้นออก และให้ copy
$msg =~ s/("http://)(S+?)(")/ <A HREF="http://$2" TARGET=_blank>http://$2 /isg;  
$msg =~ s/(http://)(S+?)(.jpg)/<img src="http://$2.jpg">/isg;
$msg =~ s/(http://)(S+?)(.png)/<img src="http://$2.png">/isg;
$msg =~ s/(http://)(S+?)(.gif)/<img src="http://$2.gif">/isg;  

ไปแทนที่ $msg =~ s/([url])(S+?)([/url])/A HREF="$2" TARGET=_blank>$2 /isg; ที่คุณได้ลบทิ้งไปนะครับ
*********** ในกรณีที่ต้องการให้ใส่ลิงค์ของรูปภาพด้วย ซึ่งเวลาทำเป็น ลิงค์ปกติจะต้องพิมพ์ "http://?????/" ซึ่งจะต้องมี " ครอบด้วยนะครับ

$msg =~ s/(http://)(S+?)(/)/ <A HREF="http://$2" TARGET=_blank>http://$2 /isg;  
*********** ในกรณีที่ ไม่ต้องการให้ลิงค์รูปภาพนั้นๆแสดง ซึ่งสามาระพิมพ์ http://?????/ ได้และจะสร้างเป็นลิงค์ทันที

เอาล่ะครับก็เป็นอันว่าจบเพียงเท่านี้นะครับ สำหรับวิธีของผม
ปล. หากว่าใครมีวิธีที่ดีกว่านี้ก็ช่วยส่งมาบอกกันด้วยนะครับผม จะดีมากเลยครับ "ความรู้จะอยู่ได้อย่างไรหากไม่มีการถ่ายทอด"

เขียนโดย ชูวงศ์

<- Back | Next ->

ThaiMisc.Com : Free Webboard | Free GuestBook | Free Poll | Free Ecard Server | Free Java Chat Room | Advertising | Contact Us
Copyright 1999-2006 Thailand Miscellaneous. Allrights reserved. webmaster@thaimisc.com