PHP: PHP Hypertext Preprocessor

Home

PHP Tutorial
Knowledge Developer Database Internet Resource
ข้อความ และนิพจน์ปกติี่
1. ชุดตัวอักษรและ Unicode
2. การจัดรูปแบบข้อความ
3. การทำงานกับข้อความ
4. นิพจน์ปกติ
5. การทำงานกับข้อความ ด้วยนิพจน์ปกติ
 
PHP เบื้องต้น
1. เริ่มต้นด้วย PHP
2. ภาษา PHP
3. การทำงานไฟล์ และไดเรคทอรี
4. การทำงานกับ Array
5. การควบคุมข้อความ และนิพจน์ปกติี่
6. คำสั่งใช้ใหม่และฟังก์ชัน
7. Object Oriented Programming
 
PHP
PHP เบื้องต้น
การสร้างโปรแกรมประยุกต์เว็บ
PHP ระดับสูง
 
Internet
PHP
SSI
HTML
AJAX
 
PHP เบื้องต้น > การควบคุมข้อความและนิพจน์ปกติี่

การทำงานกับข้อความด้วยนิพจน์ปกติิ

ฟังก์ชันของนิพจน์ปกติสามารถทำงานได้เหมือนกับรูปแบบฟังก์ชันข้อความแต่ในหลายกรณีทำงานได้มีประสิทธิภาพมากกว่า

การค้นหาข้อความย่อย

การค้นหาข้อความย่อยคือ การประยุกต์หลักของนิพจน์ที่เพิ่มพัฒนา 2 ฟังก์ชันใน PHP สำหรับนิพจน์ปกติจับคู่ คือ ereg () และ eregi ()

ฟังก์ชัน ereg () มีไวยากรณ์ดังนี้
int ereg ( string pattern, string search, array [match]);

ฟังก์ชันนี้ค้นหาข้อความ search ด้วยมองหาการจับคู่กับนิพจน์ปกติใน pattern ถ้าพบตามนิพจน์ย่อยของ pattern จะเก็บใน array match โดย 1 นิพจน์ย่อยต่อ 1 หน่วยขอมูลของ array

ฟังก์ชัน eregi () เหมือนกับฟังก์ชัน ereg () ยกเว้นตัวพิมพ์ไม่มีผล
ตัวอย่างการตรวจสอบอีเมล์

<?php

$email = array();
$email = array("master@yahoo.com", "none9945@mm");
$mail_pattern = "[[:alnum:]._-]+@[[:alnum:]-]+\.)*[[:alnum:]]+";

foreach ($email as $mail)
{

if (eregi($mail_pattern, $mail))
echo "$mail -> รูปแบบถูกต้อง<br/>\n";
else
echo "$mail -> ไม่ถูกต้อง<br/>\n";

}

?>

ผลลัพธ์
master@yahoo.com -> รูปแบบถูกต้อง
none9945@mm -> ไม่ถูกต้อง

การแทนที่ข้อความย่อย

นิพจน์ปกติสามารถใช้ค้นหาและแทนที่ข้อความย่อยในวิธีเดียวกับการใช้ str_replace() 2 ฟังก์ชันนี้มีให้สำเร็จฟังก์ชัน ereg_replace () และ eregi_replace () ฟังก์ชัน ereg_replace () มีไวยากรณ์ดังนี้
string ereg_replace (string pattern, string replacement, string search);

ฟังก์ชันนี้ค้นหานิพจน์ปกติ pattern ในข้อความ search และแทนที่ด้วยข้อความ replacement
ฟังก์ชัน eregi_replace () เหมือนกับฟังก์ชัน ereg_replace () แต่ตัวพิมพ์ไม่มีผล

<?php

$mystring ="เนื่องจากค่าน้ำมันแพงขึ้นทำให้ค่าขนส่งเพิ่มขึ้น ฿245,145.27 ต่อเดือน";
$pattern = "\฿[0-9]+(\,[0-9]{1,3})+(\.[0-9]{1,2})?";
$replaceby = "(จำนวนมาก)";

echo ereg_replace($pattern, $replaceby, $mystring); 

?>

ผลลัพธ์
เนื่องจากค่าน้ำมันแพงขึ้นทำให้ค่าเชื้อเพลิงขนส่งเพิ่มขึ้น (จำนวนมาก) ต่อเดือน

การแบ่งข้อความ

นิพจน์ปกติมีอีกฟังก์ชันที่เป็นประโยชน์ คือ split () และมีไวยากรณ์ ดังนี้
array split (string pattern, string search, int [max]);

ฟังก์ชันนี้แบ่งข้อความ search เป็นข้อความย่อยบนนิพจน์ปกติ pattern และส่งออกข้อความย่อยใน array เลขจำนวนเต็ม max จำกัดจำนวนรายการที่สามารถเข้าไปใน array นี้

ฟังก์ชันนี้สามารถใช้แบ่งชื่อโดเมน หรือวันที่ ตัวอย่าง การแบ่งชื่อโดเมน

<?php

$domain = "service.th.widebase.net";           
$ary = split("\.", $domain);
while (list($key,$value) = each ($ary))
echo $value."<br/>\n";

?>

คำสั่งนี้แบ่งชื่อโฮสต์เป็น 4 ส่วน และพิมพ์แยกคนละบรรทัด


  

สงวนลิขสิทธิ์ (C) widebase / Julaphak