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 > ถามเรื่อง syntaxhighlighter ครับ คริปที่เป็น html กลายเป็น <br>หมดเลย ต้องแก้ยังไง



 

ถามเรื่อง syntaxhighlighter ครับ คริปที่เป็น html กลายเป็น <br>หมดเลย ต้องแก้ยังไง

 



Topic : 052820



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



สถานะออฟไลน์
Twitter Facebook Hi5 Blogger



ถามเรื่อง syntaxhighlighter ครับ คริปที่เป็น html กลายเป็น <br>หมดเลย

ทั้งที่มันน่าจะออกมาเป็น html script อ่ะครับ
ผมต้องแก้ยังไงครับ
code



Tag : PHP, MySQL, HTML/CSS, JavaScript









ประวัติการแก้ไข
2010-12-08 11:43:17
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-12-08 11:30:32 By : boodemon View : 1850 Reply : 23
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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

ลอง replace ให้เป็น HTML Tag น่ะครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-08 11:50:22 By : webmaster
 


 

No. 2



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



สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

รบกวนช่วยยกตัวอย่างหน่อยครับ
แบบนี้หรือเปล่า
str_replace(">","&gt;",$string");
ขอบคุณครับ


ประวัติการแก้ไข
2010-12-08 11:57:22
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-08 11:56:03 By : boodemon
 

 

No. 3



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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

Go to : PHP htmlspecialchars()
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-08 12:09:28 By : webmaster
 


 

No. 4



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



สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

ผมใช้่ script แบบนี้ แล้วผมจะแก้ยังไงครับ
แล้วผมจะแทรก function ยังไงครับ

Code (PHP)
<?

function view($text){
$text_a=array('/\[php\](.*?)\[\/php]/is',
		'/\[js\](.*?)\[\/js]/is',
		'/\[html\](.*?)\[\/html]/is',
    );

$text_b=array( '<pre class="brush: php;">$1</pre>',
		'<pre class="brush: js;" >$1</pre>',
		'<pre class="brush: html;">$1</pre>',
    );
$text=preg_replace($text_a, $text_b, $text);
$text=nl2br($text);
return $text;
}


print view($mess);

?>


แล้ว thaicreate ใช้ฟังค์ชั่นไหน ในการแสดง ข้อความในเว็บบอร์ดครับ
ขอบคุณมากมายครับ


ประวัติการแก้ไข
2010-12-08 13:20:58
2010-12-08 13:25:37
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-08 13:20:18 By : boodemon
 


 

No. 5



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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

จำไม่ได้เหมือนกันครับ แต่ตอนนั้นเจอปัญหาเช่นเดียวกันครับ ไว้เย็น ๆ จะไปดูแล้วมาตอบให้น่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-08 14:08:59 By : webmaster
 


 

No. 6



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



สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

ขอบคุณคร๊าบบบ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-08 14:23:00 By : boodemon
 


 

No. 7

Guest


http://web-programming-bookmark.blogspot.com/2010/12/pregreplacecallback.html

ใช้ preg_replace_callback อย่างข้างบน
หรือใช้ preg_match แล้วใช้ loop ตัวแปรที่ matching โดยใช้ str_replace ทีละตัวก็ได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-08 14:52:00 By : num
 


 

No. 8



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

สมาชิกที่ใส่เสื้อไทยครีเอท

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

class="brush: php;"
class="brush: js;"
class="brush: html;"


ตรง class เหล่านี้ มีสคริปทำการแปลงโค้ดภายใน html กลายเป็น text ธรรมดาอยู่ครับ
ส่วนที่ให้ดูจาก No 4 ไม่ได้มีปัญหาอะไร ต้องไปพิจารณาโค้ดส่วนอื่นครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-08 15:51:05 By : xbeginner01
 


 

No. 9



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



สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

มันต้องเป็น ตัวแบบนี้ครับ &lt; ถึงจะรันออกมาปรกติ
แต่พอแทนที่ไป การแสดงผลออกมากลายเป็น text หมดเลย
ไม่ออกมาในรูปคำสั่งซักตัว ไม่รู้จะแก้ยังไงครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-08 16:09:51 By : boodemon
 


 

No. 10

Guest


<?php
function view($t){
	$sr = array(
			'/\[php\](.*?)\[\/php]/is'	=> '<pre class="brush: php;">%s</pre>',
			'/\[js\](.*?)\[\/js]/is' 			=> '<pre class="brush: js;" >%s</pre>',
			'/\[html\](.*?)\[\/html]/is'	=> '<pre class="brush: html;" >%s</pre>',
	);
	foreach($sr as $s => $r){
		preg_match_all($s, $t, $ms, PREG_SET_ORDER);
		foreach($ms as $m) $t = str_replace($m[0], sprintf($r,htmlspecialchars($m[1])), $t);
	}
return $t;
}


echo view(
'[php]<?php echo "test";?>

 xxx

var j=1;

[html]<p>test</p>[/html]'
);

?>
[/php]

จริงๆ $text ควรจะถูก htmlspecialchars แต่ตอนแรกก่อนเรียก view
โดยใ้ช้โค้ดเดิมที่ไม่มี $text=nl2br($text); ครับ
แต่ก็ลองดูวิธีนี้ดูก็ได้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-08 17:39:54 By : num
 


 

No. 11

Guest


http://web-programming-bookmark.blogspot.com/2010/12/replace-bbcode-to-syntaxhighlighter.html
กระดานข่าวยังมีปัญหาเรื่องโค้ดนิดหน่อย ดูโค้ดจริงที่นี่ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-08 17:42:25 By : num
 


 

No. 12



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



สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

ได้แล้วครับ ผมใช้เป็นแบบนี้ครับ

Code (PHP)
<?

function view($text){
$text=htmlspecialchars($text, ENT_QUOTES);

$text_a=array('/\[php\](.*?)\[\/php]/is',
		'/\[js\](.*?)\[\/js]/is',
		'/\[html\](.*?)\[\/html]/is',
    );

$text_b=array( '<pre class="brush: php;">$1</pre>',
		'<pre class="brush: js;" >$1</pre>',
		'<pre class="brush: html;">$1</pre>',
    );
$text=preg_replace($text_a, $text_b, $text);

return $text;
}


print view($mess);

?>

ขอบคุณทุกท่าน มากมายครับ


ประวัติการแก้ไข
2010-12-09 09:00:54
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-09 08:30:49 By : boodemon
 


 

No. 13



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



สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

ปัญหาต่อมาครับ
พอตัดบรรทัด
$text=nl2br($text);

ออกไปแล้ว ข้อความไม่ขึ้นบันทัดใหม่
พอใส่เข้าไปเหมือนเดิม ก็มี <br> ต่อท้าย แล้วจะแก้ไงต่อครับ ซักทางนึง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-09 09:01:56 By : boodemon
 


 

No. 14



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



สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

ตอบความคิดเห็นที่ : 5 เขียนโดย : webmaster เมื่อวันที่ 2010-12-08 14:08:59
รายละเอียดของการตอบ ::
จำไม่ได้เหมือนกันครับ แต่ตอนนั้นเจอปัญหาเช่นเดียวกันครับ ไว้เย็น ๆ จะไปดูแล้วมาตอบให้น่ะครับ


ไม่เห็นมาตอบให้เลยครับ


ประวัติการแก้ไข
2010-12-09 09:15:56
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-09 09:15:11 By : boodemon
 


 

No. 15



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



สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

รบกวนหน่อยนะครับผม...
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-09 10:35:21 By : boodemon
 


 

No. 16

Guest


ลองเอาโค้ดเว็บนี้ไปทดสอบดูครับ แก้ให้อีกครั้งละ
http://web-programming-bookmark.blogspot.com/2010/12/replace-bbcode-to-syntaxhighlighter.html
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-09 12:50:13 By : num
 


 

No. 17



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



สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

ลองแล้วครับ แต่มันติดปัญหาตรงที่

ถ้าไม่ใช้ nl2br() ตรง syntax highlighter ก็ทำงานปรกติ
แต่มันก็ไม่ขึ้นบันทัดใหม่ในส่วนของ รายละเอียดอื่น ๆ

ถ้าใช้ nl2br() ตรงรายละเอียดส่วนอื่น ก็ขึ้นบันทัดให้ปรกติ
แต่ ตรง syntax highlighter มันกลับมี <br> ต่อท้าย

แก้ไงดีครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-13 13:43:59 By : boodemon
 


 

No. 18

Guest


http://web-programming-bookmark.blogspot.com/2010/12/replace-bbcode-to-syntaxhighlighter.html
โค้ดตรงนี้แก้ปัญหานั้นอยู่แล้วครับ

ข้อมูลที่ส่งให้ function
=====================================================================
<?php echo "test";?>

ทดสอบ

ว่าทำงานได้หรือยัง

test
 xxx

var j=1;

[html]<p>test</p>[/html]


ผลลัพธ์
=====================================================================
<pre class="brush: php;">
&lt;?php echo &quot;test&quot;;?&gt;
</pre><br>ทดสอบ<br> <br>ว่าทำงานได้หรือยัง<br> <br>test<br><pre class="brush: php;"> xxx</pre><br><pre class="brush: js;" >var j=1;</pre><br><pre class="brush: html;" >&lt;p&gt;test&lt;/p&gt;</pre>


=====================================================================
ดูตรง <br>ทดสอบ<br> <br>ว่าทำงานได้หรือยัง<br>
มีการแทรก <br> อยู่แล้วครับไม่ต้องใช้ nl2br อีกครั้ง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-13 14:27:14 By : num
 


 

No. 19

Guest


Quote:
ลองแล้วครับ แต่มันติดปัญหาตรงที่

ถ้าไม่ใช้ nl2br() ตรง syntax highlighter ก็ทำงานปรกติ
แต่มันก็ไม่ขึ้นบันทัดใหม่ในส่วนของ รายละเอียดอื่น ๆ

ถ้าใช้ nl2br() ตรงรายละเอียดส่วนอื่น ก็ขึ้นบันทัดให้ปรกติ
แต่ ตรง syntax highlighter มันกลับมี <br> ต่อท้าย

แก้ไงดีครับ

อ้อสงสัยลองแต่โค้ดชุดเก่าน่ะครับ

ชุดเก่ายังไม่ได้แก้เพราะยังไม่รู้ความต้องการ

ชุดใหม่แก้ไขปัญหานั้นละครับ เพียงแต่ลิงค์ใช้ลิงค์เดิม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-13 14:46:23 By : num
 


 

No. 20



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



สถานะออฟไลน์
Twitter Facebook Hi5 Blogger

ไ้ด้ละ ขอบคุณมากมายเลยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-13 15:13:59 By : boodemon
 


 

No. 21



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



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

คุณ สายหมอก แก้ปัญหาด้วยวิธีไหนหรอครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-05-10 22:16:27 By : kiama
 


 

No. 22



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



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

ตอนนี้ผมใช้ FCKEditor รับค่าจากผู้ใช้ แล้วเก็บใส่ฐานข้อมูล แต่ติดปัญหาตอนนำมาแสดง
ผมพยายามหาวิธีแก้ <br> <p>
ทำตามลิงค์ http://web-programming-bookmark.blogspot.com/2010/12/replace-bbcode-to-syntaxhighlighter.html นี้แล้วครับ
แต่ไม่เป็นผล นี้เป็นโค้ดที่ผมใช่

Code (PHP)
<div>
	<?php
		$str_get = $r["notify_detail"];  //ดึงค่าจากฐานข้อมูล
	 	echo view($str_get);
        
    ?>
</div>
 

<?php
function view($t){
 $br = '<!--x-->';
 $t = str_replace(array("\r\n","\r","\n"),$br,htmlspecialchars($t));  //ผมเอาออก htmlspecialchars ครับ
 $sr = array(
   '/\[php\](.*?)\[\/php]/is' => '<pre class="brush: php;">%s</pre>',
   '/\[js\](.*?)\[\/js]/is'    => '<pre class="brush: js;" >%s</pre>',
   '/\[html\](.*?)\[\/html]/is' => '<pre class="brush: html;" >%s</pre>',
 );
 foreach($sr as $s => $r){
  preg_match_all($s, $t, $ms, PREG_SET_ORDER);
  foreach($ms as $m) $t = str_replace($m[0], sprintf($r,str_replace($br,"\r\n",$m[1])), $t);
 }
 $t = str_replace($br,'<br'.'>',$t);
 return $t;
}

?>


ผมได้ลองเอา funtion htmlspecialchars ออก ครับ เพราะทำให้โค้ดลดลง

ผลลัพธ์ที่ได้ครับ
result_image

นี้เป็นข้อมูลในฐานข้อมูลครับ
http://dl.dropbox.com/u/3914670/data.txt

ไม่รู้ติดต้องไหน ช่วยดูให้หน่อยนะครับ


ประวัติการแก้ไข
2011-05-10 23:12:41
2011-05-10 23:20:15
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-05-10 23:10:59 By : kiama
 


 

No. 23



โพสกระทู้ ( 4,706 )
บทความ ( 8 )



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


ตอบความคิดเห็นที่ : 16 เขียนโดย : num เมื่อวันที่ 2010-12-09 12:50:13
รายละเอียดของการตอบ ::
work ครับ ขอบคุณมาก

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-08-02 08:51:53 By : mr.v
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ถามเรื่อง syntaxhighlighter ครับ คริปที่เป็น html กลายเป็น <br>หมดเลย ต้องแก้ยังไง
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 05
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 อัตราราคา คลิกที่นี่