php regular เพื่อตรวจสอบว่า ชื่อที่กรอก input เข้ามานั้นเป็นภาษาไทยหรือไม่

โดยจะเขียนไวยากรณ์ ตรวจสอบให้ผู้กรอก กรอกข้อมูล เข้ามาแต่ภาษาไทยเท่านั้นครับ

โดยปกติ หากไฟล์ .php ที่ เราเขียนขึ้น save encoding เป็น tis-620 จะพบว่าไม่มีปัญหาใดๆ เลยครับ
โดยสามารถใช้

<?

$string = "ชื่อนามสกุลภาษาไทย";

if( !ereg("^[ก-๙]+$", $string ) ){ / หรือจะใช้ if( !ereg("^[\xA1-\xF9]+$",$value ) ){ ก็ได้นะครับ
 echo 'ไม่ไทย';
} else {
 echo 'ไทยแท้ๆ';
}


?>

OutPut : ไทยแท้ๆ

แต่หากไฟล์เว็บที่เขียนเขียนขึ้น save encoding เป็น utf-8 จะพบปัญหาทันทีครับ
โดยเราต้องแก้ไขดังนี้


<?

$string = "ชื่อนามสกุลภาษาไทย";
$string = iconv(  'UTF-8','TIS-620', $string);


if( !ereg("^[ก-๙]+$", $string ) ){ / หรือจะใช้ if( !ereg("^[\xA1-\xF9]+$",$value ) ){  ก็ได้นะครับ
 echo 'ไม่ไทย';
} else {
 echo 'ไทยแท้ๆ';
}


?>
OutPut : ไทยแท้ๆ

ก็จะส่งผลให้แสดงผล การตรวจสอบให้ถูกต้องครับ
วันนี้กับอีเรื่องแค่นี้ ทำเสียเวลาไปมากจริงๆ ครับ

บทความโดยคุณมีน http://www.ireallyhost.com
ขออนุญาติกรุณาอย่าตัดเครดิสออกครับ

ref : http://lab.tosdn.com/?p=52
ref : http://www.thaiseoboard.com/index.php/topic,18976.0.html



ไอเรียลลี่โฮส
สำหรับการสนับสนุน และช่วยเหลือ
http://www.ireallyhost.com/support