PHP: [6] ฟังก์ชั่นเกี่ยวกับสตริง
ฟังก์ชั่น (Functions) ฟังก์ชั่น (Functions) หมายถึง กลุ่มของคำสั่งที่ถูกนำมารวบรวมไว้ด้วยกัน เพื่อให้สามารถเรียกใช้ได้อย่างสะดวกและเป็นระบบ ใน PHP มีฟังก์ชั่นอยู่ 2 ชนิด ดังนี้ ฟังก์ชั่นที่ PHP จัดเตรียมไว้ให้ ฟังก์ชั่นที่ผู้เขียนโปรแกรมสร้างขึ้นมาใช้เองเรียกว่า User-defined functions
ฟังก์ชั่นที่ PHP จัดเตรียมให้ : ฟังก์ชั่นเกี่ยวกับสตริง ฟังก์ชั่น addslashed() ใช้เพิ่มเครื่องหมาย backslash(\) ให้กับอักษรพิเศษ 3 ตัว คือ double quote ("), single quote (') และ backslash (\) ฟังก์ชั่น chr() และ ord() chr() จะใช้ส่งตัวอักษรตามค่าแอสกี้ที่ระบุกลับมา เช่น chr(65) จะได้ตัวอักษร A กลับมา ord() จะใช้ส่งลำดับแอสกี้ของตัวอักษรกลับมา เช่น ord(“A”) จะได้ค่า 65 กลับมา ฟังก์ชั่น crypt() ใช้เข้ารหัสข้อความ
ตัวอย่าง <html> <head> <title>การใช้ฟังก์ชั่นสตริง</title> </head> <body> <?php $str = "Is your name O'reilly?"; // Outputs: Is your name O\'reilly? echo addslashes($str) . "<br />"; echo chr(65) . "<br />"; echo ord("A") . "<br />"; ?> </body> </html> ex10_01.php
ตัวอย่าง <html> <head> <title>การใช้ฟังก์ชั่นสตริง</title> </head> <body> <?php $myname = "สมโภชน์"; for ($i=1; $i<=3; $i++) { echo "ครั้งที่ $i : " . crypt($myname) . "<br />\n"; } ?> </body> </html> ex10_02.php
ฟังก์ชั่นที่ PHP จัดเตรียมให้ : ฟังก์ชั่นเกี่ยวกับสตริง ฟังก์ชั่น md5() ใช้เข้ารหัสข้อความด้วยวิธี Message-Digest Algorithm ของ RSA Data Security, Inc. ฟังก์ชั่นนี้มีแบบแผนในการเข้ารหัสที่แน่นอน โดยผลลัพธ์ที่ได้จะเป็นสตริงที่มีความยาว 32 ตัวอักษร
ตัวอย่าง <html> <head> <title>การใช้ฟังก์ชั่นสตริง</title> </head> <body> <?php $myname = "สมโภชน์"; for ($i=1; $i<=3; $i++) { echo "ครั้งที่ $i : " . md5($myname) . "<br />\n"; } ?> </body> </html> ex10_03.php
ฟังก์ชั่นที่ PHP จัดเตรียมให้ : ฟังก์ชั่นเกี่ยวกับสตริง ฟังก์ชั่น explode() และ implode() explode() ใช้แบ่งข้อความออกเป็นส่วนย่อย ๆ โดยขึ้นอยู่กับตัวแยก (delimeter) ที่กำหนด และส่งผลลัพธ์กลับมาเป็นอาร์เรย์ที่มีข้อความย่อย ๆ เหล่านั้นเป็นสมาชิก รูปแบบ explode (สัญลักษณ์ที่ใช้แยก, ข้อความ) implode() ใช้นำข้อมูลจากอาร์เรย์มาประกอบกันเป็นข้อมูลชนิดสตริงตัวเดียว (ทำตรงข้ามกับ explode()) รูปแบบ implode (สัญลักษณ์ที่ใช้คั่น, อาร์เรย์)
ตัวอย่าง <html><head> <title>การใช้ฟังก์ชั่นสตริง</title> </head><body> <?php $mystr = "นาย เด็ดเดี่ยว ดวงดี webmaster"; //ใช้ช่องว่างเป็นตัวแยกข้อความ $a = explode(" ", $mystr); for ($i=0; $i<count($a); $i++) { echo "สมาชิกของอาร์เรย์ที่มีอินเด็กซ์ $i: " . $a[$i] . "<br />\n"; } ?> </body></html> ex10_04.php
ตัวอย่าง <html> <head> <title>การใช้ฟังก์ชั่นสตริง</title> </head> <body> <?php $a = array("นาย", "เด็ดเดี่ยว", "ดวงดี", "webmaster"); $mystr = implode("+", $a); echo $mystr; ?> </body> </html> ex10_05.php
ฟังก์ชั่นที่ PHP จัดเตรียมให้ : ฟังก์ชั่นเกี่ยวกับสตริง ฟังก์ชั่น htmlspecialchars() และ nl2br() htmlspecialchars() เป็นฟังก์ชั่นที่ใช้เปลี่ยนตัวอักษรซึ่งมีความหมายพิเศษต่อเว็บบราวเซอร์ เช่น < , > ,& ,",' ให้อยู่ในรูปแบบที่เว็บบราวเซอร์สามารถแสดงผลได้อย่างถูกต้อง เช่น > จะถูกเปลี่ยนเป็น > เป็นต้น nl2br() ใช้แทรกแท็ก <br> หรือแท็ก <br /> (แท็ก <br /> เป็นแท็กตามมาตรฐาน XHTML)
ตัวอย่าง <html> <head> <title>การใช้ฟังก์ชั่นสตริง</title> </head> <body> <?php $mystr = "<font color=red><b>ข้อความทดสอบ</b></font>"; echo "1: $mystr<br />\n"; echo "2: " . htmlspecialchars($mystr); echo nl2br("\n Bye bye"); ?> </body> </html> ex10_06.php
ฟังก์ชั่นที่ PHP จัดเตรียมให้ : ฟังก์ชั่นเกี่ยวกับสตริง ฟังก์ชั่น strcmp() ใช้เปรียบเทียบสตริง 2 ชุด โดยให้ความสำคัญกับตัวอักษรพิมพ์ใหญ่-เล็กของภาษาอังกฤษ (Case sensitive) รูปแบบ strcmp (สตริง 1, สตริง 2) ค่าที่ฟังก์ชั่น strcmp() ส่งคืนมาให้ มีดังนี้ - ค่าลบ (น้อยกว่า 0) แสดงว่าสตริงชุดแรกน้อยกว่า - ค่าบวก (มากกว่า 0) แสดงว่าสตริงชุดที่ 1 มากกว่า - 0 แสดงว่าสตริงชุดที่ 1 เท่ากับสตริงชุดที่ 2
ตัวอย่าง <html> <head> <title>การใช้ฟังก์ชั่นสตริง</title> </head> <body> <?php $str1 = "123"; $str2 = "123"; echo strcmp($str1, $str2); ?> </body> </html> ex10_07.php
ฟังก์ชั่นที่ PHP จัดเตรียมให้ : ฟังก์ชั่นเกี่ยวกับสตริง ฟังก์ชั่น strlen() และ strrev() strlen() ใช้นับจำนวนตัวอักษรในสตริง (ความยาวของสตริง) strrev() ใช้กลับลำดับของตัวอักษรในสตริง
ตัวอย่าง <html> <head> <title>การใช้ฟังก์ชั่นสตริง</title> </head> <body> <?php $mystr = "คนไทย This is a book."; echo "จำนวนตัวอักษร = " . strlen($mystr) . "<br />\n"; echo "reversed string : " . strrev($mystr); ?> </body> </html> ex10_08.php
ฟังก์ชั่นที่ PHP จัดเตรียมให้ : ฟังก์ชั่นเกี่ยวกับสตริง ฟังก์ชั่น substr() ใช้ดึงข้อความส่วนที่ต้องการออกมาจากข้อความที่กำหนด รูปแบบ substring (สตริง, จุดเริ่มต้น, ความยาว)
ตัวอย่าง <html><head> <title>การใช้ฟังก์ชั่นสตริง</title> </head> <body> <?php $mystr = "คนไทย"; for ($i=1; $i<=strlen($mystr); $i++) { echo substr($mystr, 0, $i) . "<br />\n"; } ?> </body></html> ex10_09.php
ฟังก์ชั่นที่ PHP จัดเตรียมให้ : ฟังก์ชั่นเกี่ยวกับสตริง ฟังก์ชั่น trim(), ltrim(), rtrim trim() ใช้ตัด whitespace (ตัวอักษรที่ไม่มีหน้าตา เช่น ช่องว่าง, แท็บ, ตัวอักษรขึ้นบรรทัดใหม่ เป็นต้น) ทางด้านหน้าและด้านหลังของข้อความออกไป ltrim() ใช้ตัด whitespace เฉพาะทางด้านหน้าของข้อความ rtrim() ใช้ตัด whitespace เฉพาะทางด้านหลังของข้อความ
ตัวอย่าง <html><head> <title>การใช้ฟังก์ชั่นสตริง</title> </head> <body> <?php $mystr = " ประเทศไทย "; echo "\$mystr มีความยาว " . strlen($mystr) . " ตัวอักษร<br />\n"; $lmystr = ltrim($mystr); echo "\$lmystr มีความยาว " . strlen($lmystr) . " ตัวอักษร<br />\n"; $rmystr = rtrim($mystr); echo "\$rmystr มีความยาว " . strlen($rmystr) . " ตัวอักษร<br />\n"; $absmystr = trim($mystr); echo "\$absmystr มีความยาว " . strlen($absmystr) . " ตัวอักษร<br />\n"; ?> </body></html> ex10_10.php