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,037

HOME > PHP > PHP Forum > สอบถามทีครับว่าผมเขียน Function มา 2 ตัวครับ ทั้ง 2 ตัวมี preg_replace แต่ไม่สามารถอ่านค่าออกมาได้ครับแนะนำทีครับ



 

สอบถามทีครับว่าผมเขียน Function มา 2 ตัวครับ ทั้ง 2 ตัวมี preg_replace แต่ไม่สามารถอ่านค่าออกมาได้ครับแนะนำทีครับ

 



Topic : 119198



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



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



ช่วยทีครับ พอดีผมเขียน ฟั่งชั่น PHP ไว้ 2 ตัวครับ
ตัวที่ 1 เป็นตัวหลัก คือ bbcodes
ตัวที่ 2 เรียกใช้งาน คือ process

สำหรับโค้ดของทั้ง 2 ตัวนะครับ
Code (PHP)
    Public function bbcodes ($text) {
        $str_search = array(
            "#\r\n|\r|\n|\n\r#is",
            "#\[p\](.+?)\[\/p\]#is",
            "#\[b\](.+?)\[\/b\]#is",
            "#\[i\](.+?)\[\/i\]#is",
            "#\[s\](.+?)\[\/s\]#is",
            "#\[u\](.+?)\[\/u\]#is",
            "#\[url=(.+?)\](.+?)\[\/url\]#is",
            "#\[url\](.+?)\[\/url\]#is",
            "#\[img\](.+?)\[\/img\]#is",
            "#\[size=([0-9])\](.+?)\[\/size\]#is",
            "#\[color=(.+?)\](.+?)\[\/color\]#is",
            "#\[list\](.+?)\[\/list\]#is",
            "#\[list=(1|a|I)\](.+?)\[\/list\]#is",
            "#\[\*\](.*)#",
            "#\[h(1|2|3|4|5|6)\](.+?)\[/h\\1\]#is",
            "#\[left\](.+?)\[\/left\]#is",
            "#\[center\](.+?)\[\/center\]#is",
            "#\[right\](.+?)\[\/right\]#is",
            "#\[justify\](.+?)\[\/justify\]#is",
            "#\[hr\]#is",
            "#\[quote\](.+?)\[\/quote\]#is",
            "#\[code\](.+?)\[\/code\]#is",
            "#\[email=(.+?)\](.+?)\[\/email\]#is",
        );

        $str_replace = array(
            '<br />',
            '<p>\\1</p>',
            '<strong>\\1</strong>',
            '<span style="font-style:italic">\\1</span>',
            '<span style="text-decoration:line-through">\\1</span>',
            '<span style="text-decoration:underline">\\1</span>',
            '<a href="\\1">\\2</a>',
            '<a href="\\1">\\1</a>',
            '<img src="\\1" />',
            '<span style="font-size:1\\1px">\\2</span>',
            '<span style="color:\\1">\\2</span>',
            '<ul>\\1</ul>',
            '<ol type="\\1">\\2</ol>',
            '<li>\\1</li>',
            '<h\\1>\\2</h\\1>',
            '<div align="left">\\1</div>',
            '<div align="center">\\1</div>',
            '<div align="right">\\1</div>',
            '<div align="justify">\\1</div>',
            '<hr />',
            '<blockquote class="quote">\\1</blockquote>',
            '<code class="pre-code">'. self::process('\\1') .'</code>',
            '<a href="mailto:\\1">\\2</a>',
        );

        return preg_replace($str_search, $str_replace, $text);
    }

    public static function process($text) {
        $text = htmlspecialchars($text);
        $text = str_replace('\\\\','\\\\<e>', $text); 

        $str_search = array(
            '/([\-\!\%\^\*\(\)\+\|\~\=\`\{\}\[\]\:\"\'<>\?\,\.\/]+)/',
            '/(?<!\w)((0x|\#)[\da-f]+|\d+| \d+(px|em|cm|mm|rem|s|\%))(?!\w)/ix',
            '/(?<!\w|>|\#)([A-Z_0-9]{2,})(?!\w)/x'
        );

        $str_replace = array(
            '<span class="P">$1</span>',
            '<span class="N">$1</span>',
            '<span class="D">$1</span>',
            '<span class="K">$1</span>'
        );

        $tokens = array();
        $text   = preg_replace($str_search, $str_replace, $text);
        $text   = str_replace(array_keys($tokens), array_values($tokens), $text);
        $text   = str_replace(array('<e>', "\t"), array('', '    '), $text);

        return $text;
    }


ผมอยากทราบว่าผมจะใช้งาน ฟั่งชั่น process ในฟั่งชั่น bbcodes ได้อย่างไรครับ ช่วยแนะนำทีครับ
ผมงมมาตั้งแต่เมื่อวานแล้วครับ จนวันนี้ตอนเช้าแล้ว ยังไม่ได้เลยครับ T^T



Tag : PHP









ประวัติการแก้ไข
2015-10-03 09:43:00
2015-10-03 09:43:53
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-10-03 06:51:59 By : vilet224 View : 821 Reply : 6
 

 

No. 1



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



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

Code (PHP)
Public function bbcodes ($text) {
   ...
   $result=$this->process('test');
}
public static function process($text) {
   .....
}







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-03 09:22:41 By : NewbiePHP
 


 

No. 2



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



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

ตอบความคิดเห็นที่ : 1 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-10-03 09:22:41
รายละเอียดของการตอบ ::
ขอบคุณครับ แต่ว่าผมต้องใช้ function bbcodes ($text) รับค่ามาอีกทีอะครับ

เช่น
$aa = 'ทดสอบการโพสข้อความ [ code]<?php if($a == false) echo 'เกิดข้อผิดพลาด'; ?>[ /code]';

แล้วเอาข้อความจาก $aa มาใส่ไว้ใน function bbcodes ($text) น่ะครับ

ส่วน function process($text) จะรับค่าของ $aa มาอีกทีครับ แล้วมาอ่าน [ code]จนถึง[ /code] ครับ

ผมจะเขียน BBcode [ code]..........[ /code]

คล้ายๆ bbcode php code ของ thaicreate แต่มันติดตรงที่ function bbcodes มี preg_replace อยู่แล้ว และมันไม่สามารถอ่าน ทับซ้อน preg_replac ได้อะครับ ไม่รู้ผมจะเขียนออกมายังไงดี




ประวัติการแก้ไข
2015-10-03 09:40:37
2015-10-03 09:41:20
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-03 09:39:49 By : vilet224
 

 

No. 3



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



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

อ่านแล้วไม่เข้าใจ คุณเขียนโค๊ดตามที่คุณเข้าใจก่อน แล้วเอาโค๊ดที่ผิดผลาด พร้อมเออเร่อร์ มาให้ดู ครับ
และการแสดงโค๊ดต้องมีที่มาที่ไปให้ชัดเจน คุณเรียก ฟังก์ชั่นเหล่านี้ยังไง จากในคลาส เรียกแบบไหน
ตัวอย่างที่ให้มาก็เมคขึ้นมาไม่ได้เกิดจากการทดลองทำ
นักประดิษฐ์มันต้องเกิดจากการทดลองทำ ผิดถูกค่อยว่ากัน อย่ามโนเอาเองครับ
บางทีประสบการณ์มันน้อยเกินกว่าจะมานั่งมโนเอง ทดลองทำไม่เสียหายอะไร ได้ประสบการณ์เพิ่มด้วย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-03 09:46:15 By : NewbiePHP
 


 

No. 4



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



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

ตอบความคิดเห็นที่ : 3 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-10-03 09:46:15
รายละเอียดของการตอบ ::
ผมทำแล้วครับ แต่มันขึ้นอย่างนี้ครับ
ฟหกหก

ส่วนโค้ดที่ใช้เป็นแบบนี้ครับที่นำมาแสดง
Code (PHP)
<?php echo bbcode::bbcodes(htmlspecialchars($this->row->contect)); ?>


ผมทดสอบทำมาทั้งวันแล้วครับ แต่ว่าไม่ทราบว่าทำไมมันจึงไม่ขึ้น แต่ไม่เกิด เออเร่อ นะครับ เพียงข้อความในแท๊กที่ผม แท๊กไว้เป็น bbcode มันไม่แสดงครับ

จริงๆ ติดอยู่ตรงโค้ด บรรทัดนี้ครับ บรรทัดที่ 50
Code (PHP)
'<code class="pre-code">'. self::process('\\1') .'</code>',





ประวัติการแก้ไข
2015-10-03 10:00:04
2015-10-03 10:00:50
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-03 09:58:16 By : vilet224
 


 

No. 5



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



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

ลองแบบนี้ดูครับ
Code (PHP)
<?php
class bbcode{
	Public function bbcodes ($text) {
		$str_search = array(
			...
			...
		);
		$str_replace = array(
			...
			...
		);
		return preg_replace($str_search, $str_replace, $this->process($text));
	}
	public static function process($text) {
		...
		...
	}

}
$testText = <<<HTML
<form name="TEST">
</form>
HTML;
$bb=new bbcode();
echo $bb->bbcodes(htmlspecialchars($testText));

ที่ไม่แสดง error เพราะอาจปิดการแสดงเออเร่อร์ไว้
error_reporting(E_ALL); // ทำให้แสดงเออเร่อร์ก่อน แต่คิดว่าคุณคงเขียนด้วย MVC
น่าจะเปิด evironment delvelop ไว้ก่อน อย่าเพิ่งใช้ on product


ประวัติการแก้ไข
2015-10-03 10:42:25
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-03 10:38:38 By : NewbiePHP
 


 

No. 6



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



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

ตอบความคิดเห็นที่ : 5 เขียนโดย : NewbiePHP เมื่อวันที่ 2015-10-03 10:38:38
รายละเอียดของการตอบ ::
ขอบคุณมากครับ ^__^

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-10-03 11:41:11 By : vilet224
 

   

ค้นหาข้อมูล


   
 

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