190 likes | 369 Views
CHAPTER 7 String Functions and Regular Expression. Agenda. ฟังก์ชันเกี่ยวกับข้อความ (String Functions) นิพจน์ปกติ (Regular Expression). ฟังก์ชันเกี่ยวกับข้อความ. การตัดช่องว่างในสตริง - trim( ข้อความ ) สำหรับตัดช่องว่างทั้งหมดที่อยู่ด้านหน้าและด้านหลัง ของสตริงทิ้งไป - ltrim( ข้อความ )
E N D
Agenda • ฟังก์ชันเกี่ยวกับข้อความ (String Functions) • นิพจน์ปกติ (Regular Expression)
ฟังก์ชันเกี่ยวกับข้อความฟังก์ชันเกี่ยวกับข้อความ การตัดช่องว่างในสตริง - trim(ข้อความ) สำหรับตัดช่องว่างทั้งหมดที่อยู่ด้านหน้าและด้านหลัง ของสตริงทิ้งไป - ltrim(ข้อความ) ตัดช่องว่างที่อยู่ด้านหน้า(ทางซ้าย) ทิ้งไป - chop(ข้อความ) ตัดช่องว่างที่อยู่ด้านหลัง (ทางขวา) ทิ้งไป ข้อความที่อยู่ในวงเล็บ อาจเป็นข้อความจริงๆ หรือเป็นตัวแปรสตริงก็ได้หากเป็นข้อความจริง ๆ ให้เขียนใน “ ”
trim() <? $str1 =" Computer Science\n\n"; print "String1 = ".$str1."<br>"; echo "Length of String1 = ".strlen($str1)."<br>"; $str2 = trim($str1); echo "Length of String2 = ".strlen($str2)."<br>"; ?>
ltrim() <? $str1 =" Computer Science\n\n"; print "String1 = ".$str1."<br>"; echo "Length of String1 = ".strlen($str1)."<br>"; $str2 = ltrim($str1); echo "Length of String2 = ".strlen($str2)."<br>"; ?>
chop() <? $str1 =" Computer Science\n\n\n"; print "String1 = ".$str1."<br>"; echo "Length of String1 = ".strlen($str1)."<br>"; $str2 = chop($str1); echo "Length of String2 = ".strlen($str2)."<br>"; ?>
nl2br() เปลี่ยน \n ให้เป็น <br> <? $str =" Computer\n Science\nChiang Mai\n\n"; print "String = ".$str."<br>"; echo “use nl2br() <br>"; echo "String = ".nl2br($str); ?>
การเปลี่ยนรูปแบบของตัวอักษรการเปลี่ยนรูปแบบของตัวอักษร ตัวอย่างคำสั่ง $str= “Please ENTER your name”; strtoupper($str); strtolower($str); ucfirst($str); ucwords($str);
การเปรียบเทียบ นับอักษร หาตำแหน่ง สลับ และซ้ำข้อความ
การตัดข้อความบางส่วนออกมาใช้การตัดข้อความบางส่วนออกมาใช้
นิพจน์ปกติ (Regular Expression) regular expression ใช้สำหรับการเปรียบเทียบและ แทนที่ข้อมูลแบบสตริง ซึ่งคล้ายกับการใช้ฟังก์ชัน เปรียบเทียบและแทนที่ของสตริง แต่ regular expression จะสามารถกำหนดรูปแบบของสตริงได้มากกว่า เพื่อใช้ใน การค้นหาสตริงที่ใกล้เคียงกันได้ โดยใช้รูปแบบ(pattern) สำหรับตรวจสอบหลัก ๆ ดังนี้ ^ กำหนดให้เป็นจุดเริ่มต้นข้อความ $ กำหนดให้เป็นจุดสิ้นสุดข้อความ [A-Z] หมายถึงตัวอักษร A ถึง Z [a-z] หมายถึงตัวอักษร a ถึง z [0-9] หมายถึงตัวเลข 0-9
ฟังก์ชันสำหรับตรวจสอบค่าสตริงฟังก์ชันสำหรับตรวจสอบค่าสตริง ฟังก์ชันการค้นหาสตริงย่อย - ereg(pattern,ข้อความ) ใช้สำหรับตรวจสอบข้อความและตัวอักษร ฟังก์ชันจะตี ความตัวอักษรพิมพ์ใหญ่และตัวอักษรพิมพ์เล็กแตกต่างกัน - eregi(pattern,ข้อความ) ใช้สำหรับการตรวจสอบข้อความและตัวอักษร โดยจะ ตีความตัวอักษรพิมพ์ใหญ่และตัวพิมพ์เล็กเหมือนกัน
ตัวอย่าง: การตรวจสอบรหัสไปรษณีย์ <? $zip = “10220”; if (!ereg(^[0-9] [0-9] [0-9] [0-9] [0-9]$)) echo “<br>$zip ผิดรูปแบบ กลับไปแก้ไขใหม่”; else echo “<br>$zip ถูกต้อง”; ?> • ลองเปลี่ยนค่าตัวแปร $zip เป็นค่าต่าง ๆ • ถูกต้อง • K1022 ผิดรูปแบบ กลับไปแก้ไขใหม่ • 1022 ผิดรูปแบบ กลับไปแก้ไขใหม่
ตัวอย่าง <? $str1 = "Computer Science, Chiang mai"; $str2 = "computer science, Chiang Mai"; $com = "Chiang mai"; echo "Comparision string1<br>"; if (ereg($com,$str1)) echo "Found String<br>"; else echo "Not found <br>"; echo "Comparision string2<br>"; if (ereg($com,$str2)) echo "Found String<br>"; else echo "Not found <br>"; echo "Comparision string2 with eregi<br>"; if (eregi($com,$str2)) echo "Found String<br>"; else echo "Not found <br>"; ?>
ฟังก์ชันการแทนที่สตริงย่อยฟังก์ชันการแทนที่สตริงย่อย - ereg_replace(pattern,คำใหม่,ข้อความ) ใช้สำหรับแทนที่ข้อความและตัวอักษร ฟังก์ชันจะตี ความตัวอักษรพิมพ์ใหญ่และตัวอักษรพิมพ์เล็กแตกต่างกัน - eregi_replace(pattern,คำใหม่,ข้อความ) ใช้สำหรับแทนที่ข้อความและตัวอักษร โดยจะตีความตัว อักษรพิมพ์ใหญ่และตัวพิมพ์เล็กเหมือนกัน
สำหรับ str_replace และ stri_replace เหมาะสำหรับการค้นหาคำแบบตรง ๆ เพื่อเปลี่ยนเข้าไปแทนที่ เช่น เซ็นเซอร์คำไม่สุภาพส่วน ereg_replace และ eregi_replace เหมาะสำหรับการค้นหาในลักษณะเปรียบเทียบรูปแบบ pattern ที่ซับซ้อนกว่า ตัวอย่าง <? $str = “เดินยังกะควาย ควาย ควาย"; echo “<br> ก่อน: $str"; $str=str_replace(“ควาย”, “***”,$str); echo “<br>หลัง: $str"; ?> ผลลัพธ์ ก่อน: เดินยังกะควาย ควาย ควาย หลัง: เดินยังกะ*** *** ***
ฟังก์ชันการแบ่งสตริงแล้วเอาไปเก็บไว้ในอาร์เรย์ฟังก์ชันการแบ่งสตริงแล้วเอาไปเก็บไว้ในอาร์เรย์ - split(pattern,ข้อความ) ใช้สำหรับแบ่งสตริงแล้วไปเก็บไว้ในอาร์เรย์ โดยจะตีความ ตัวอักษรพิมพ์ใหญ่และตัวพิมพ์เล็กต่างกัน - spliti(pattern,ข้อความ) ใช้สำหรับแบ่งสตริง โดยจะตีความตัวอักษรพิมพ์ใหญ่และ ตัวพิมพ์เล็กเหมือนกัน
ตัวอย่าง <? $str1 = "Computer Science, Chiang mai"; echo "before substring<br>"; echo "after substring<br>"; $array1 = split(" ",$str1); for ($i=0;$i<count($array1);$i++) echo "array1[$i]=$array1[$i]<br>"; echo "after substring with c<br>"; $array3 = spliti("c",$str1); for ($i=0;$i<count($array3);$i++) echo "array3[$i]=$array3[$i]<br>"; ?>