หัวข้อ: php ช่วยทีครับจะใช้ preg_replace แทนอักษรอะครับ เริ่มหัวข้อโดย: sakang ที่ 10 พฤศจิกายน 2010, 01:43:03 ฟังชั่นนี้ preg_replace ถ้าผมจะให้แทนข้อความให้มีแค่ภาษาอังกฤษ,ไทย กับวรรคจะต้องเขียนยังไงอะครับ ผมทำได้แค่นี้อะครับ
preg_replace('/([^\w\sก-๙]|_)/', '', $val21); ตัดอักษรได้หมดแต่สระมาไม่หมด สระ โ ไม้โท สระ ไ ไม้เอก ไม่รู้มีตัวไหนอีกบ้างที่ไม่มี ไปถามที่ thaicreate มาบอกว่าแก้ได้ พร้อม output พอเอามาจริงๆก็มีแต่ภาษาอังกฤษ :wanwan017: preg_replace('/([^\w\s]|_)/', '', $val2); อันนี้เป็นส่วน code เดิม ที่บอกว่าแก้ได้ :wanwan010: ปล่อยให้ผมงมมา ห้า ชม หวังว่าจะมีคนช่วยนะครับ ขอร้อง !! :wanwan017: หัวข้อ: Re: php ช่วยทีครับจะใช้ preg_replace แทนอักษรอะครับ เริ่มหัวข้อโดย: Tee++; ที่ 10 พฤศจิกายน 2010, 01:59:37 พอดีวันนี้นอนดึก ....
โค๊ด: preg_replace('/([^\w\sก-๙]|_)/u', '', $val21); ใส่ modifier u ไปอีกตัวนึง อ้างถึง u (PCRE8) This modifier turns on additional functionality of PCRE that is incompatible with Perl. Pattern strings are treated as UTF-8. This modifier is available from PHP 4.1.0 or greater on Unix and from PHP 4.2.3 on win32. UTF-8 validity of the pattern is checked since PHP 4.3.5. http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php หัวข้อ: Re: php ช่วยทีครับจะใช้ preg_replace แทนอักษรอะครับ เริ่มหัวข้อโดย: sakang ที่ 10 พฤศจิกายน 2010, 02:37:04 ขอบคุณครับ แต่มันหายหมดเลยอะครับ หนักกว่าของเดิมอีก มีอีกวิธีไหมอะครับ
:wanwan006: :wanwan009: โค๊ด: $str[] = 'ทดส้อบ'; code ที่ใช้ลองอะครับ รบกวนทีครับ out put อ้างถึง PB Tartaros Adafruit Industries Hack Kinect 2000 BOOMz OSGU Raycity Car Romans Car Vital OSGU Grand Fantasia Megaphone asdfafadfasdf asdfsdfs999 หัวข้อ: Re: php ช่วยทีครับจะใช้ preg_replace แทนอักษรอะครับ เริ่มหัวข้อโดย: massacre ที่ 10 พฤศจิกายน 2010, 05:46:22 ท่านด้านบน เขาแนะนำให้ใช้
โค๊ด: preg_replace('/([^\w\sก-๙]|_)/u', '', $val21) หัวข้อ: Re: php ช่วยทีครับจะใช้ preg_replace แทนอักษรอะครับ เริ่มหัวข้อโดย: sakang ที่ 10 พฤศจิกายน 2010, 07:11:11 ใส่ไปแล้วครับ ที่เอามาเป็นตัวที่มีอยู่ก่อนเอาชุดนั้นไปแก้ไขครับ
:wanwan023: :wanwan022: หัวข้อ: Re: php ช่วยทีครับจะใช้ preg_replace แทนอักษรอะครับ เริ่มหัวข้อโดย: Tee++; ที่ 10 พฤศจิกายน 2010, 11:39:55 อะไรเนี่ย นี่มันมั่วไปหมดแล้ว
1. ตรงนี้ iconv ทำไมครับ ใช้ UTF-8 ดีๆ อยู่แล้ว $val2 = iconv('UTF-8', 'TIS620', $val); 2. ตรงนี้ต้องเติม modifier u ไปด้วย $val2 = preg_replace('/([^\w\s]|_)/u', '', $val2); หัวข้อ: Re: php ช่วยทีครับจะใช้ preg_replace แทนอักษรอะครับ เริ่มหัวข้อโดย: sakang ที่ 10 พฤศจิกายน 2010, 16:38:40 นั้นแหละครับ ผมเอาไปใส่แล้ว อาเรย์อื่นๆหายหมดเลย เหลือแต่อันสุดท้าย
โค๊ด:
เหลือแค่เนียอะครับ อยากให้มันแสดงผลออกมาแบบนี้อะครับ โค๊ด: ทดส้อบ จาก โค๊ด: ทดส้อบ หัวข้อ: Re: php ช่วยทีครับจะใช้ preg_replace แทนอักษรอะครับ เริ่มหัวข้อโดย: WPDSign ที่ 10 พฤศจิกายน 2010, 16:59:04 <?php
$string_to_replace = array ("+" , "/"'); $string_after_replace = array (" " , " "); $key_explode = str_replace($string_to_replace , $string_after_replace , $resultb['title'] , $count); echo $key_explode; ?> เครดิต คุณ kongpair หัวข้อ: Re: php ช่วยทีครับจะใช้ preg_replace แทนอักษรอะครับ เริ่มหัวข้อโดย: zankumuro ที่ 10 พฤศจิกายน 2010, 17:06:31 เอาของผมไหมครับบ้านๆเลย ตามปกติใน Regular expressions ก-๙ จะหมายถึงพยัญชนะไทยและสระทุกตัว รวมเลขไทยด้วย แต่เอาไปใช้งานจริงๆแล้ว ที่ผมเป็นคือสระ เ- มันกลายเป็นสี่เหลี่ยมซะงั้นเลยแก้ปัญหาด้วย
$val2 = preg_replace('/([^a-zA-Z0-9ก-๙เ])/', '', $val); ลองดู :wanwan020: หัวข้อ: Re: php ช่วยทีครับจะใช้ preg_replace แทนอักษรอะครับ เริ่มหัวข้อโดย: sakang ที่ 10 พฤศจิกายน 2010, 18:01:39 <?php $string_to_replace = array ("+" , "/"'); $string_after_replace = array (" " , " "); $key_explode = str_replace($string_to_replace , $string_after_replace , $resultb['title'] , $count); echo $key_explode; ?> เครดิต คุณ kongpair ได้แล้วครับ ขอบคุณครับ |