Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > สอบถามการแปลงข้อมูลที่นำเข้าจาก ckeditor เข้า mysql แล้วติด tag [url]....[/url] มา



 

สอบถามการแปลงข้อมูลที่นำเข้าจาก ckeditor เข้า mysql แล้วติด tag [url]....[/url] มา

 



Topic : 136323



โพสกระทู้ ( 67 )
บทความ ( 0 )



สถานะออฟไลน์




สอบถามการแปลงข้อมูลที่นำเข้าจาก ckeditor เข้า mysql แล้วติด tag มา ยกตัวอย่าง

[.url]https://www.thaicreate.com/[/url]

(อันนี้เป็นข้อความที่เก็บไว้ใน mysql)

โดยมีข้อความธรรมดารวมอยู่ด้วย โดยข้อความธรรมดาไม่ติด Tag อะไร แสดงผลปกติ จึงขอสอบถามว่า ต้องแปลงอย่างไรให้ทั้งหมดแสดงผลออกมาปกติ ไม่ติด tag ลิ้งค์ก็ใช้งานปกติ ขอบคุณครับ



Tag : PHP, MySQL









ประวัติการแก้ไข
2021-08-09 14:25:15
2021-08-09 14:26:13
2021-08-09 14:29:49
2021-08-09 14:31:40
2021-08-09 14:33:19
2021-08-09 14:34:29
2021-08-09 14:36:01
2021-08-09 14:37:39
2021-08-09 14:38:01
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2021-08-09 14:24:19 By : npolkhet View : 566 Reply : 12
 

 

No. 1



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


ก่อนบันทึกต้องแปลงข้อมูลเป็น HTML entity ทั้งหมด






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-09 14:31:28 By : TheGreatGod_of_Death
 


 

No. 2



โพสกระทู้ ( 67 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-09 14:31:28
รายละเอียดของการตอบ ::
พอดีผมใหม่จริงๆกับทางด้านนี้ รบกวนขอรายลเอียด และ ตัวอย่างได้ไหมครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-09 14:40:14 By : npolkhet
 

 

No. 3



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


HTML entity

Code (PHP)
function convertToNumericEntities($string) {
    $convmap = array(0x21, 0x10ffff, 0, 0xffffff);
    return mb_encode_numericentity($string, $convmap, "UTF-8");
}

$string='ง่ายๆ';
echo convertToNumericEntities($string);

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-09 15:18:45 By : TheGreatGod_of_Death
 


 

No. 4



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 3 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-09 15:18:45
รายละเอียดของการตอบ ::
ThaiCreate แปลง link ให้อ้างตามรูป

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-09 15:24:11 By : TheGreatGod_of_Death
 


 

No. 5



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


จริงๆ ไม่ต้องทำอะไรเลย แค่ติดตั้ง BBCODE ในเว็บ

หรืออีกทางเลือกเขียน parser ให้ครอบคลุมแท็กทั้งหมดใน ckeditor

ตัวอย่าง (ระวัง...support แค่แท็กพื้นฐาน)
https://gist.github.com/afsalrahim/bc8caf497a4b54c5d75d
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-09 15:41:01 By : TheGreatGod_of_Death
 


 

No. 6



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


เพิ่งอ่านคำถามใหม่
No.1 กับ No.3 ไม่ใช่วิธีแก้ปัญหานะ
ไม่เกี่ยวกับ entity/nonentity

คำตอบจริง ดู No.5
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-09 17:58:18 By : TheGreatGod_of_Death
 


 

No. 7



โพสกระทู้ ( 67 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-09 15:41:01
รายละเอียดของการตอบ ::
ขอบคุณมากครับ คุณ พญามัจจุราช ผมทำตามในลิ้งค์ได้ผลครับ
แต่ขอสอบถามเพิ่มเติมว่า วิธีในลิ้งค์เป็นวิธีใส่ bbcode หรือ parser ครับ งั้นสอบถามเป็นข้อๆ ดังนี้ครับ

1. การใส่ bbcode ใช่ตามลิ้งค์นี้ไหมครับ ถ้าไม่ใช่ พอบอกหรือแนะนำวิธีเข้าใจง่ายได้ไหมครับ พอดีอ่านๆดูทั่วๆไป ยังทำตามไม่ได้
2. ตามลิ้งค์ให้มาทำตามได้แล้วครับ แต่มีปัญหาว่า เวลาคลิกลิงค์ที่แปลงมา มันก็จะเปิดลิ้งค์ในแทปตัวเองเลย อันนี้ต้องเขียนเพิ่มเติมตรงไหนครับ เพื่อให้มันเปิดลิ้งค์ที่แทปใหม่

อันนี้ต้องรบกวนละเอียดเข้าใจง่ายนิดนึงได้ไหมครับ ผมใหม่จริงๆทางด้านนี้
ขอบคุณครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-10 09:55:10 By : npolkhet
 


 

No. 8



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


1.
BBCode มาจาก Bulletin Board Code ใช้ในการจัดรูปแบบเนื้อหาในการโพสต์กระทู้ของเว็บบอร์ด แต่ในปัจจุบันก็ยังมีการนำมาประยุกต์กับเว็บไซต์ที่ไม่ใช่เฉพาะในเว็บบอร์ดเท่านั้น แต่เป็น content ทุกประเภท ทุกส่วนของเนื้อหาที่ต้องการนำเสนอข้อมูลที่ถูกจัดรูปแบบ(style) เพื่อความเจริญตาของผู้ผ่านเข้าชมเว็บไซต์ ไม่ว่าจะเป็น ฟอนต์ สี ขนาด ตำแหน่ง ลิงค์ วัตถุและการเคลื่อนไหวต่างๆ ล้วนถูกกำหนดเป็นสัญลักษณ์แทน HTML tag และ attribute (HTML เป็นภาษาที่ใช้ในการแสดงผลเว็บไซต์ของทางหน้าจอ) ซึ่งมีข้อดี คือ ผู้ใช้ไม่จำเป็นต้องพิมพ์คำสั่ง HTML ที่ยืดยาว และเพื่อเป็นการป้องกันผู้ใช้หัวหมอใส่ HTML ที่ไม่จำเป็นจนส่งผลให้เว็บโหลดช้าและเปลือง bandwidth

ฺฺแต่เดิม BBCode จะเขียนเลียนแบบแท็กของ HTML มีแท็กเปิดและปิด และ attribute ต่างกันแค่แท็ก HTML ใช้ Angle brackets ในขณะที่ BBCode ใช้ Square brackets ต่อมาได้มีการพัฒนาขึ้นหลากหลาย ทั้งแบบไม่มีแท็กปิด และแบบไม่ใช้ Square brackets เป็นส่วนประกอบ

การติดตั้ง BBCode ในเว็บ ที่ผมพูดถึง หมายถึง การนำ Library/Framework/Plugin สำเร็จรูป (รวมทุกขั้นตอน ทั้งไปกลับ แสดง) มาเขียนและอ่านกลับระหว่าง HTML <-> BBCode ซึ่งในส่วนนี้ลองใช้ google ค้นดูมีเยอะเลย ...ดีไม่ดี ckeditor เองอาจมี plugin สำหรับงานนี้ในตัวด้วย (ผมให้คำแนะนำไม่ได้ เพราะไม่ได้ลงลึกขนาดนั้น)

ส่วน parser คือโปรแกรมที่ทำหน้าที่ parse (= ปาด, ฝาน, หั่น...) ข้อมูลนำเข้า (ส่วนใหญ่เป็นข้อความ string) ให้เป็นส่วนเล็กๆ เพื่อให้ได้ตามโครงสร้างและถูกไวยากรณ์ของโปรแกรมปลายทาง ก่อนป้อนข้อมูลโครงสร้างนี้ให้ไปทำงานตามเป้าหมายต่อไป

parser ที่ผมพูดถึงในที่นี้ คือ BBCode parser แบบเข้าใจง่ายคือ โปรแกรมหรือตัวแปลง BBCode เป็น HTML

ถ้าเปรียบเทียบกับการประกอบอาหาร อาจได้
BBCode คือ วัตถุดิบ เครื่องเทศและเครื่องปรุง เช่น เนื้อ ผัก พริก น้ำปลา ฯลฯ
BBCode parser คือ สิ่งที่ใช้หั่นวัตถุดิบ (เช่น มีด สาก ครก ฯลฯ) และวิธีการประกอบอาหาร เช่น ทอด นึ่ง ต้ม อบ ปิ้ง ย่าง ฯลฯ
HTML คือ อาหารที่พร้อมรับประทาน
(พอได้หรือไม่...เพิ่งคิดสดๆ )

ดังนั้น ลิงค์ที่ให้ไป คือ BBCode parser


2.
ใช้ความรู้พื้นฐาน HTML แท็ก <a> มี attribute ชื่อ target ค่าปกติจะเป็น _self ถ้าต้องการเปิดแท็บใหม่ใช้ _blank
https://www.w3schools.com/tags/att_a_target.asp

กระบวนการ parsing ใช้หลักการ Find & Replace ด้วยฟังก์ชัน preg_replace()
https://www.php.net/manual/en/function.preg-replace.php

Find & Replace string ด้วย RegEx (Regular Expression) <- ถ้ายังไม่รู้จักลองค้นข้อมูลเพิ่มเติม
โดยเรียงลำดับก่อนหลังตาม array index

เมื่อเราดูจากอาร์เรย์ $find และ $replace ลำดับ index ของ anchor (ลิงค์) จะอยู่รองสุดท้ายทั้งคู่

ดังนั้น ถ้าต้องการให้เปิดแค่หน้าใหม่ใน $find ก็ไม่ต้องเปลี่ยน แต่เพิ่ม target attribute ใน $replace จะได้

Code
'<a href="$1" target="_blank">$1</a>',

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-10 15:46:25 By : TheGreatGod_of_Death
 


 

No. 9



โพสกระทู้ ( 67 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 8 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-10 15:46:25
รายละเอียดของการตอบ ::
ขอคาราวะท่าน..TheGreatGod_of_Death ละเอียดและเข้าใจมากครับ ทำได้แล้ว ขอบคุณมากครับผม

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-10 16:21:53 By : npolkhet
 


 

No. 10



โพสกระทู้ ( 67 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 5 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-09 15:41:01
รายละเอียดของการตอบ ::
ติดอีกปัญหา คือ เรื่องตัวยกกำลัง กับ ตัวห้อย มีวิธีการเขียนยังไงบ้างครับ ขอบคุณครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-16 16:02:25 By : npolkhet
 


 

No. 11



โพสกระทู้ ( 296 )
บทความ ( 0 )



สถานะออฟไลน์


ตามที่ผมบอก find & replace
ส่วนที่ต้องศึกษาและทำความเข้าใจคือ find เพราะเป็น RegEx
ลิงค์ Parser ที่ให้ไปทำงานแค่ BBCode พื้นฐาน
ถ้าต้องการเพิ่มเติมก็ใส่เพิ่มทั้ง $find, $replace
โดยเลียนแบบวิธีการเขียนของเขา

RegEx ถ้าไม่อยากอ่าน reference ลองศึกษาจาก
https://regexr.com/
https://regex101.com/

เขาจะเขียนอธิบายความหมายการใช้ pattern
แค่แปลความหมายจากภาษาอังกฤษ...ซึ่งไม่น่ายากเกิน

ลองทดลองทำดูก่อน...ถ้าไม่ได้ยังไงค่อยยกส่วนที่ทำไปแล้วมาถามครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-16 17:09:25 By : TheGreatGod_of_Death
 


 

No. 12



โพสกระทู้ ( 67 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 11 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-08-16 17:09:25
รายละเอียดของการตอบ ::
คือ เข้าไปดูในฐานข้อมูลที่บันทึกลงไป ตรงข้อความที่ทำตัวยกกำลังไว้ ก็เป็นข้อความติดกันธรรมดา ไม่มี tag อะไรกำกับเลย จึงไม่รู้ว่าจะเขียน fine กับ replace ยังไงครับ ใช้ ckeditor 4.16.1

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-08-17 10:09:46 By : npolkhet
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามการแปลงข้อมูลที่นำเข้าจาก ckeditor เข้า mysql แล้วติด tag [url]....[/url] มา
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่