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

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

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingเปลี่ยน url string เป็น hyper link
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: เปลี่ยน url string เป็น hyper link  (อ่าน 1981 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
slimfit
Newbie
*

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

กระทู้: 13



ดูรายละเอียด
« เมื่อ: 19 มีนาคม 2012, 15:55:40 »

สวัสดีครับทุกท่าน ขอรบกวนเพื่อน ๆ พี่ ๆ ใน thaiseo หน่อยครับ

คือตอนนี้ผมเขียน function ไว้ตัวหนึ่งสำหรับเปลี่ยน url string ไปเป็น link โดยอัตโนมัติ (ใช้ PHP นะครับ)

เช่น ในคอนเทนต์มีดังนี้  

โค๊ด:
click link http://www.thaiseoboard.com นะครับ

ให้เปลี่ยนเป็น
โค๊ด:
click link <a href="http://www.thaiseoboard.com">http://www.thaiseoboard.com</a> นะครับ

ผมลองเขียนโค้ดมาส่วนหนึ่งแล้ว (ใช้ Regular expression) แต่มันจะมีปัญหาตรงที่ถ้ามีแท็กอะไรซักอย่างปนอยู่ในคอนเทนต์แล้วดันมี url string อยู่ด้วยมันจะแทนทีเลยเช่น

โค๊ด:
click link <img src="http://www.thaiseoboard.com/pic1.jpg" /> นะครับ 
มันจะเปลี่ยนเป็น
โค๊ด:
click link <img src="<a href="http://www.thaiseoboard.com/pic1.jpg">http://www.thaiseoboard.com/pic1.jpg</a>" /> นะครับ
ซึ่งไม่ถูกต้องเพราะมันไม่ควรแทนทีลงไป

ที่ผมคิด logic ได้ตอนนี้คือ จะเขียน Regular ยังไงเพื่อบอกว่า ตัวอักษรที่อยู่หน้าลิงค์ต้องไม่เป็น Double Quote หรือ Single Quote แต่ไม่ทราบว่าจะเขียนออกมาเป็น Regular ยังไง

รบกวนด้วยครับ

« แก้ไขครั้งสุดท้าย: 19 มีนาคม 2012, 16:02:49 โดย slimfit » บันทึกการเข้า
kobkung
Verified Seller
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,312



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 20 มีนาคม 2012, 10:35:03 »

ดักด้วยการเช็คว่า หลังนามสกุลมีอะไรต่อไหม ถ้ามี . ตัวต่อไปไม่ใช่ไฟล์ภาพ jpg , gif , png , bmp ที่เหลือปล่อยให้ link ได้ ไม่ให้ link ก็ดักเพิ่มเข้าไป
ลองดูได้ป่าว คิดสดผิดถูกลองเอง
บันทึกการเข้า

เราเป็นบริษัท รับทำเว็บไซต์ แก้เว็บเดิม เขียน Php+Mysql+jQuery+css+bootstrap  งานตามสั่ง ประสบการณ์ จะ 19 ปี ละจ้า
Smilephp.com รับทำเว็บไซต์บริษัท e-commerce + ระบบชำระเงิน paypal,ธนาคาร  เว็บบริษัท เว็บขายของ ระบบจอง เช่า เขียน PHP ได้ทุกแนว  ช่วงนี้เน้นรับงาน ERP ระบบเอกสารบริษัท ,บัญชี ,  Barcode, Stock , Warehouse , Logistic ติดต่อ 086-364-5262

งดตอบคนทำเว็บนอกลู่นอกทาง ไม่ทำเว็บ WP ปั่นแชร์ เว็บประมูล สคริปปั่นใดๆ ไม่ทำเว็บบอลและพ
slimfit
Newbie
*

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

กระทู้: 13



ดูรายละเอียด
« ตอบ #2 เมื่อ: 21 มีนาคม 2012, 13:34:22 »

ดักด้วยการเช็คว่า หลังนามสกุลมีอะไรต่อไหม ถ้ามี . ตัวต่อไปไม่ใช่ไฟล์ภาพ jpg , gif , png , bmp ที่เหลือปล่อยให้ link ได้ ไม่ให้ link ก็ดักเพิ่มเข้าไป
ลองดูได้ป่าว คิดสดผิดถูกลองเอง

มีตัวอย่างซักหน่อยมั้ยครับ ผมอ่านแล้วงง ๆ ครับ
บันทึกการเข้า
kw4nguru
ก๊วนเสียว
*

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

กระทู้: 350



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 21 มีนาคม 2012, 14:03:20 »

ดักด้วย " ไำด้รึปล่าวครับ  Tongue
บันทึกการเข้า
NeoSmith
สมุนแก๊งเสียว
*

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

กระทู้: 791



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 21 มีนาคม 2012, 14:16:39 »

Replace อักษร " ' < > พวกนี้ ด้วย "" ครับ
บันทึกการเข้า

ช่วยเหลือผู้ป่วยโรคเอดส์กับทางวัดพระบาทน้ำพุง่ายๆ ด้วยการโทร
1900 222 200
ครั้งละ 15 บาท
รับออกแบบ-เขียนแบบ บ้าน อาคารพานิชย์ อพาร์ทเมนท์ โรงงานฯ โดยทีมวิศวกรผู้ชำนาญงานมากว่า 30 ปี
หาเพื่อน,หาแฟน,หากิ๊ก นัดเพื่อน Line
slimfit
Newbie
*

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

กระทู้: 13



ดูรายละเอียด
« ตอบ #5 เมื่อ: 22 มีนาคม 2012, 14:20:41 »

ขอบคุณสำหรับคำแนะนำครับ

โค๊ด:
if(preg_match_all("/https?:\/\/(.*)/",$messages,$matches))
{
     foreach($matches[0] as $key=>$value)
     {
            $replacements = "<a href='".$value."' target='_blank' title='".$value."'>$value</a>";
            $massages = str_replace($value,$replacements,$messages);
     }
}

จะเขียน Regular Expression ยังไงครับ เพื่อบอกว่า หน้า http ต้องห้ามเป็น Single Quote ( ' ) และ Double Quote ( " )
« แก้ไขครั้งสุดท้าย: 22 มีนาคม 2012, 14:27:28 โดย slimfit » บันทึกการเข้า
NeoSmith
สมุนแก๊งเสียว
*

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

กระทู้: 791



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 22 มีนาคม 2012, 14:23:40 »

ขอบคุณสำหรับคำแนะนำครับ

โค๊ด:
if(preg_match_all("/https?:\/\/(.*)/",$messages,$matches))
{
     ............ แทนที่ด้วยลิงค์.............
}

จะเขียน Regular Expression ยังไงครับ เพื่อบอกว่า หน้า http ต้องห้ามเป็น Single Quote ( ' ) และ Double Quote ( " )

ไม่ต้องห้ามหรอกครับ replace Single Quote ( ' ) และ Double Quote ( " ) ด้วย "" ไปเลย ง่ายกว่าครับ
บันทึกการเข้า

ช่วยเหลือผู้ป่วยโรคเอดส์กับทางวัดพระบาทน้ำพุง่ายๆ ด้วยการโทร
1900 222 200
ครั้งละ 15 บาท
รับออกแบบ-เขียนแบบ บ้าน อาคารพานิชย์ อพาร์ทเมนท์ โรงงานฯ โดยทีมวิศวกรผู้ชำนาญงานมากว่า 30 ปี
หาเพื่อน,หาแฟน,หากิ๊ก นัดเพื่อน Line
slimfit
Newbie
*

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

กระทู้: 13



ดูรายละเอียด
« ตอบ #7 เมื่อ: 22 มีนาคม 2012, 14:32:16 »

อ้างถึง
ไม่ต้องห้ามหรอกครับ replace Single Quote ( ' ) และ Double Quote ( " ) ด้วย "" ไปเลย ง่ายกว่าครับ

replace ยังไงเหรอครับ (งง)

คือผมต้องการแทนที string ด้วย link (แท็ก a) นะครับ ถ้า replace ไปมันก็ถูกแทนด้วย link อยู่ดีเพราะมันเจอเป็น url string

ผมเข้าใจถูกมั้ยครับ

บันทึกการเข้า
NeoSmith
สมุนแก๊งเสียว
*

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

กระทู้: 791



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 22 มีนาคม 2012, 14:39:19 »

อ้างถึง
ไม่ต้องห้ามหรอกครับ replace Single Quote ( ' ) และ Double Quote ( " ) ด้วย "" ไปเลย ง่ายกว่าครับ

replace ยังไงเหรอครับ (งง)

คือผมต้องการแทนที string ด้วย link (แท็ก a) นะครับ ถ้า replace ไปมันก็ถูกแทนด้วย link อยู่ดีเพราะมันเจอเป็น url string

ผมเข้าใจถูกมั้ยครับ



ก่อนหน้าที่คุณจะเอามาใส่ tag a คุณก็ควรจะลบ อักขระ ที่ไม่ต้องการออกทั้งหมดก่อนครับ ด้วยการ replace ด้วย ("")
แล้วค่อยเอามา ใส่ tag a ด้วยวิธีการของคุณต่อไป ครับ
บันทึกการเข้า

ช่วยเหลือผู้ป่วยโรคเอดส์กับทางวัดพระบาทน้ำพุง่ายๆ ด้วยการโทร
1900 222 200
ครั้งละ 15 บาท
รับออกแบบ-เขียนแบบ บ้าน อาคารพานิชย์ อพาร์ทเมนท์ โรงงานฯ โดยทีมวิศวกรผู้ชำนาญงานมากว่า 30 ปี
หาเพื่อน,หาแฟน,หากิ๊ก นัดเพื่อน Line
WPDSign
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 9,060



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 22 มีนาคม 2012, 14:45:05 »

รออ่านด้วยครับ เคยลอง งง จนไม่ได้เขียนต่อ
บันทึกการเข้า

สร้างบ้าน Modern แบบบ้านโมเดิร์น มาแรง
» ต้องการสร้างบ้านดูแบบบ้านสวยๆ แบบบ้านสองชั้น ทุกสไลต์บริการรับสร้างบ้าน ใครฝันอย่างสร้างบ้านสไตล์รีสอร์ท มีแบบบ้านสไตล์รีสอร์ท พร้อมก่อสร้าง ลงประกาศขายบ้านที่ ลงประกาศ
CMSHostThailand
บุคคลทั่วไป
« ตอบ #10 เมื่อ: 22 มีนาคม 2012, 14:54:16 »

รอเหมือนกันค่ะ เพราะเคยเช็คที่ domaintools.com แล้ว เป็นแบบนี้ กำลังหาวิธีแก้ไขอยู่พอดีเลยค่ะ รออ่านนะค่ะ

บันทึกการเข้า
slimfit
Newbie
*

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

กระทู้: 13



ดูรายละเอียด
« ตอบ #11 เมื่อ: 22 มีนาคม 2012, 15:15:29 »

คือเข้าใจที่คุณ NeoSmith อธิบายนะครับ แต่มันจะไม่ได้ครับ

คือยังงี้ครับ

สมมุติคอนเทนต์ผมเป็นดังนี้

โค๊ด:
click link <img src="http://www.thaiseoboard.com/pic1.jpg" /> นะครับ 

สมมุติผม Replace Single Quote และ Double Quote มันก็จะเป็น

โค๊ด:
click link <img src=http://www.thaiseoboard.com/pic1.jpg /> นะครับ 

ทีนี้ถ้าผมเขียน Regular เพื่อเปลี่ยนจาก url format เป็น link ก็จะเป็นดังนี้

โค๊ด:
click link <img src=<a href="http://www.thaiseoboard.com/pic1.jpg">http://www.thaiseoboard.com/pic1.jpg</a> /> นะครับ 

ซึ่งมันผิดอะครับ
บันทึกการเข้า
NeoSmith
สมุนแก๊งเสียว
*

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

กระทู้: 791



ดูรายละเอียด เว็บไซต์
« ตอบ #12 เมื่อ: 22 มีนาคม 2012, 15:24:10 »

โอเคครับ เข้าใจแล้ว ขอคิดก่อน ว่ายังไงดี  wanwan012 wanwan012 wanwan012
บันทึกการเข้า

ช่วยเหลือผู้ป่วยโรคเอดส์กับทางวัดพระบาทน้ำพุง่ายๆ ด้วยการโทร
1900 222 200
ครั้งละ 15 บาท
รับออกแบบ-เขียนแบบ บ้าน อาคารพานิชย์ อพาร์ทเมนท์ โรงงานฯ โดยทีมวิศวกรผู้ชำนาญงานมากว่า 30 ปี
หาเพื่อน,หาแฟน,หากิ๊ก นัดเพื่อน Line
New2th
Verified Seller
สมุนแก๊งเสียว
*

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

กระทู้: 841



ดูรายละเอียด
_
« ตอบ #13 เมื่อ: 22 มีนาคม 2012, 15:47:29 »

 wanwan008
« แก้ไขครั้งสุดท้าย: 28 มิถุนายน 2017, 20:49:12 โดย New2th » บันทึกการเข้า
googlerich
สมุนแก๊งเสียว
*

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

กระทู้: 534



ดูรายละเอียด เว็บไซต์
« ตอบ #14 เมื่อ: 22 มีนาคม 2012, 16:28:01 »

เอาอันนี้ไปใช้ครับ ลองเอาไปปรับปรุงดูนะครับ

โค๊ด:
<?php

FUNCTION wd_makelink($thisContent){
     
$thisContent TRIM($thisContent);
     
$thisContent HTMLSPECIALCHARS($thisContent);
     
$thisContent PREG_REPLACE(&#39;#(.*)\@(.*)\.(.*)#&#39;,&#39;<a href="mailto:\\1@\\2.\\3">Send email</a>&#39;,$thisContent);
     
$thisContent PREG_REPLACE(&#39;=([^\s]*)(www.)([^\s]*)=&#39;,&#39;<a href="http://\\2\\3" target=\&#39;_new\&#39;>\\2\\3</a>&#39;,$thisContent);
     
RETURN $thisContent;
   }
$testContent="ตามฉันมาสิ แล้วฉันจะไปหาเธอคลิกที่ลิงค์นะ http://www.seowatchtools.com/ ลองดูนะ";

 echo 
wd_makelink($testContent);
   
?>

 


บันทึกการเข้า

ไทยเฮิร์บออนไลน์
สินค้าสมุนไพร
คอร์ดกีต้าร์
คอร์ดเพลง
สมุนไพรขายส่ง

http://woodychannel.com/ วู๊ดดี้พาเที่ยว กินเที่ยวสบายๆ สไตล์วู๊ดดี้
http://woodysay.com/ วู๊ดดี้เซย์
slimfit
Newbie
*

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

กระทู้: 13



ดูรายละเอียด
« ตอบ #15 เมื่อ: 23 มีนาคม 2012, 09:27:28 »

ขอบคุณทุกคำแนะนำครับ
 
โค้ดของคุณ googlerich ใช้ได้เลยครับ ใช้กับ url ภาษาไทยได้ด้วย (เมื่อคืนแก้ได้แต่มีปัญหาเรื่อง url ภาษาไทย  wanwan023)  สุดยอดเลยครับท่าน
ผมขออนุญาติแก้นิดหนึ่งนะครับเผื่อท่านอื่นจะนำไปใช้ กรณีที่เรารันบน localhost หรือเป็น ip เช่น http://192.168.0.1/www.thaiseoboard.com/

โค๊ด:
public function wd_makelink($thisContent)
{
     $thisContent = trim($thisContent);
     $thisContent = htmlspecialchars($thisContent);
     $thisContent = preg_replace('#(.*)\@(.*)\.(.*)#','<a href="mailto:\\1@\\2.\\3">Send email</a>',$thisContent);
     $thisContent = preg_replace('=([^\s]*)(www.)([^\s]*)=','<a href="\\1\\2\\3" target=\'_new\'>\\1\\2\\3</a>',$thisContent);
     return $thisContent;
}

ตัวนี้จะใช้ได้กับ url อย่างเดียวถ้ามีรูปภาพแทรกเข้าไปในคอนเทนต์ด้วยก็จะใช้ไม่ได้เหมือนเดิมครับ เช่น
โค๊ด:
$testContent="ตามฉันมาสิ แล้วฉันจะไปหาเธอคลิกที่ลิงค์นะ http://www.seowatchtools.com/ ลองดูนะ <img src=\"http://www.xxxx.com/pic1.jpg\" />";

พอจะมีวิธีแก้มั้ยครับ


« แก้ไขครั้งสุดท้าย: 23 มีนาคม 2012, 09:30:35 โดย slimfit » บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์