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

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

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingphp ช่วยทีครับจะใช้ preg_replace แทนอักษรอะครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: php ช่วยทีครับจะใช้ preg_replace แทนอักษรอะครับ  (อ่าน 8108 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
sakang
สมุนแก๊งเสียว
*

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

กระทู้: 508



ดูรายละเอียด เว็บไซต์
« เมื่อ: 10 พฤศจิกายน 2010, 01:43:03 »

ฟังชั่นนี้ preg_replace ถ้าผมจะให้แทนข้อความให้มีแค่ภาษาอังกฤษ,ไทย กับวรรคจะต้องเขียนยังไงอะครับ ผมทำได้แค่นี้อะครับ

preg_replace('/([^\w\sก-๙]|_)/', '', $val21);

ตัดอักษรได้หมดแต่สระมาไม่หมด สระ โ ไม้โท สระ ไ ไม้เอก ไม่รู้มีตัวไหนอีกบ้างที่ไม่มี ไปถามที่ thaicreate มาบอกว่าแก้ได้ พร้อม output พอเอามาจริงๆก็มีแต่ภาษาอังกฤษ
 wanwan017
preg_replace('/([^\w\s]|_)/', '', $val2);

อันนี้เป็นส่วน code เดิม ที่บอกว่าแก้ได้
 wanwan010
ปล่อยให้ผมงมมา ห้า ชม

หวังว่าจะมีคนช่วยนะครับ ขอร้อง !!
 wanwan017
บันทึกการเข้า
Tee++;
โปรแกรมเมอร์ จอหงวน
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,861



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 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/r...nce.pcre.pattern.modifiers.php
บันทึกการเข้า

sakang
สมุนแก๊งเสียว
*

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

กระทู้: 508



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 10 พฤศจิกายน 2010, 02:37:04 »

ขอบคุณครับ แต่มันหายหมดเลยอะครับ หนักกว่าของเดิมอีก มีอีกวิธีไหมอะครับ
 wanwan006 wanwan009
โค๊ด:
$str[] = 'ทดส้อบ';
$str[] = 'PB จัดเต็มต่อเนื่องไม่ยั้งมือ กับกิจกรรม “แจกปืนทุกวัน มันส์ต่อเนื่อง” เปิดฤกษ์.';
$str[] = 'Tartaros : ระบบการแยกชิ้นส่วนที่ไม่ควรมองข้าม';
$str[] = 'Adafruit Industries ประกาศ ใคร Hack Kinect ได้ เอาไปเลย 2,000$';
$str[] = 'BOOMz จัดกีฬาสี ทั้งทีเพื่อนๆ จะพลาดได้ไง_ (ต้อนรับเอเชียนเกมที่กว่างโจว)';
$str[] = 'OSGU ร่วมกับ Raycity ส่งกองทัพไอเทมแต่งรถพร้อม Car Romans, Car Vital ให้สมาชิกตล.';
$str[] = 'จัดไป! OSGU ส่งไอเทมพิเศษให้ขาแซ๊ต Grand Fantasia กับ Megaphone ตลอดเดือน พศจิกา.';
$str[] = 'asdfaf!adfasdf !asdfsdf[]\s999';
print_r($str);
print "<br /><br />";

foreach ($str as $val)
{
$val2 = iconv('UTF-8', 'TIS620', $val);

$val2 = preg_replace('/([^\w\s]|_)/', '', $val2);

echo iconv('TIS620', 'UTF-8', $val2), '<br />';
}

code ที่ใช้ลองอะครับ รบกวนทีครับ

out put
อ้างถึง
PB
Tartaros
Adafruit Industries Hack Kinect 2000
BOOMz
OSGU Raycity Car Romans Car Vital
OSGU Grand Fantasia Megaphone
asdfafadfasdf asdfsdfs999
« แก้ไขครั้งสุดท้าย: 10 พฤศจิกายน 2010, 02:39:36 โดย sakang » บันทึกการเข้า
massacre
Newbie
*

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

กระทู้: 48



ดูรายละเอียด
« ตอบ #3 เมื่อ: 10 พฤศจิกายน 2010, 05:46:22 »

ท่านด้านบน เขาแนะนำให้ใช้
โค๊ด:
preg_replace('/([^\w\sก-๙]|_)/u', '', $val21)
นี่ครับ
บันทึกการเข้า
sakang
สมุนแก๊งเสียว
*

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

กระทู้: 508



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 10 พฤศจิกายน 2010, 07:11:11 »

ใส่ไปแล้วครับ ที่เอามาเป็นตัวที่มีอยู่ก่อนเอาชุดนั้นไปแก้ไขครับ
 wanwan023 wanwan022
บันทึกการเข้า
Tee++;
โปรแกรมเมอร์ จอหงวน
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,861



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 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);
บันทึกการเข้า

sakang
สมุนแก๊งเสียว
*

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

กระทู้: 508



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 10 พฤศจิกายน 2010, 16:38:40 »

นั้นแหละครับ ผมเอาไปใส่แล้ว อาเรย์อื่นๆหายหมดเลย เหลือแต่อันสุดท้าย
โค๊ด:






asdfafadfasdf asdfsdfs999

เหลือแค่เนียอะครับ

อยากให้มันแสดงผลออกมาแบบนี้อะครับ
โค๊ด:
ทดส้อบ
PB จัดเต็มต่อเนื่องไม่ยั้งมือ กับกิจกรรม
Tartaros ระบบการแยกชิ้นส่วนที่ไม่ควรมองข้าม
Adafruit Industries ประกาศ ใคร Hack Kinect ได้ เอาไปเลย 2000
BOOMz จัดกีฬาสี ทั้งทีเพื่อนๆ จะพลาดได้ไง ต้อนรับเอเชียนเกมที่กว่างโจว
OSGU ร่วมกับ Raycity ส่งกองทัพไอเทมแต่งรถพร้อม Car Romans Car Vital ให้สมาชิกตล
จัดไป OSGU ส่งไอเทมพิเศษให้ขาแซ๊ต Grand Fantasia กับ Megaphone ตลอดเดือน พศจิกา
asdfafadfasdf asdfsdfs999

จาก
โค๊ด:
ทดส้อบ
PB จัดเต็มต่อเนื่องไม่ยั้งมือ กับกิจกรรม
Tartaros : ระบบการแยกชิ้นส่วนที่ไม่ควรมองข้าม
Adafruit Industries ประกาศ ใคร Hack Kinect ได้ เอาไปเลย 2,000$
BOOMz จัดกีฬาสี ทั้งทีเพื่อนๆ จะพลาดได้ไง_ (ต้อนรับเอเชียนเกมที่กว่างโจว)
OSGU ร่วมกับ Raycity ส่งกองทัพไอเทมแต่งรถพร้อม Car Romans, Car Vital ให้สมาชิกตล.
จัดไป! OSGU ส่งไอเทมพิเศษให้ขาแซ๊ต Grand Fantasia กับ Megaphone ตลอดเดือน พศจิกา.
asdfaf!adfasdf !asdfsdf[]\s999
wanwan017
« แก้ไขครั้งสุดท้าย: 10 พฤศจิกายน 2010, 16:41:11 โดย sakang » บันทึกการเข้า
WPDSign
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 9,060



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 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
« แก้ไขครั้งสุดท้าย: 10 พฤศจิกายน 2010, 16:59:55 โดย WPDSign » บันทึกการเข้า

สร้างบ้าน Modern แบบบ้านโมเดิร์น มาแรง
» ต้องการสร้างบ้านดูแบบบ้านสวยๆ แบบบ้านสองชั้น ทุกสไลต์บริการรับสร้างบ้าน ใครฝันอย่างสร้างบ้านสไตล์รีสอร์ท มีแบบบ้านสไตล์รีสอร์ท พร้อมก่อสร้าง ลงประกาศขายบ้านที่ ลงประกาศ
zankumuro
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,036



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 10 พฤศจิกายน 2010, 17:06:31 »

เอาของผมไหมครับบ้านๆเลย ตามปกติใน Regular expressions ก-๙ จะหมายถึงพยัญชนะไทยและสระทุกตัว รวมเลขไทยด้วย แต่เอาไปใช้งานจริงๆแล้ว ที่ผมเป็นคือสระ เ- มันกลายเป็นสี่เหลี่ยมซะงั้นเลยแก้ปัญหาด้วย

$val2 = preg_replace('/([^a-zA-Z0-9ก-๙เ])/', '', $val);

ลองดู  wanwan020
บันทึกการเข้า

อย่าเชื่อผมมาก ผมมันมั่ว.....ฮ่าๆ

ฝาก Like แฟนเพจหน่อยครับ
https://www.facebook.com/devsignup

ข่าวสารวงการเกมส์ ทริปทริคต่างๆ เกมส์แจกฟรี
https://www.wecanplay.in.th/
sakang
สมุนแก๊งเสียว
*

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

กระทู้: 508



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 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

ได้แล้วครับ ขอบคุณครับ
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์