PHP เบื้องต้น > การควบคุมข้อความและนิพจน์ปกติี่
การจัดรูปแบบข้อความ
ตามปกติต้องมีการปรับข้อความของผู้ใช้เล็กน้อย (จาก ฟอร์ม HTML) ก่อนการใช้
การตัดข้อความ
ขั้นตอนแรกในการปรับคือการตัด whitespace ส่วนเกินจากข้อความ ถึงแม้ว่าสิ่งนี้ไม่สำคัญแต่มีประโยชน์ถ้ากำลังเก็บข้อมูลในไฟล์หรือฐานข้อมูล หรือเปรียบเทียบข้อความ
PHP มี 3 ฟังก์ชันสำหรับวัตถุประสงค์นี้ ฟังก์ชัน trim () ใช้ปรับปรุงข้อมูลนำเข้าดังนี้
$name = trim($name);
ฟังก์ชัน trim () ตัด whitespace จากเริ่มต้นและท้ายข้อความ จากนั้นส่งออกข้อความผลลัพธ์ ตัวอักษรที่ถูกตัดคือ บรรทัดใหม่ (\n) และช่องว่าง
ฟังก์ชัน ltrim () กำจัด whitespace เฉพาะจากเริ่มต้นข้อความ ฟังก์ชัน chop() กำจัด whitespace จากท้ายข้อความ
การจัดรูปแบบข้อความสำหรับการนำเสนอ
PHP มีชุดฟังก์ชันที่สามารถจัดรูปแบบข้อความในวิธีต่างกัน
การใช้รูปแบบ HTML
ฟังก์ชัน nl2br () ใช้ข้อความเป็นพารามิเตอร์และแทนที่ตัวอักษรบรรทัดใหม่ด้วย <br/> ฟังก์ชันนี้ใช้ประโยชน์สำหรับการส่งข้อความไปยัง browser ให้เป็นรูปแบบ HTML เนื่องจาก HTML จะไม่สนใจ whitespace ทำให้ข้อความเหล่านี้ไม่มีการเว้นบรรทัด
จัดรูปแบบข้อความสำหรับการพิมพ์
นอกจากการใช้ echo ในการพิมพ์ข้อความไปยัง browser แล้ว PHP ยังสนับสนุนฟังก์ชัน print () ซึ่งทำงานเหมือนกับ echo แต่เป็นฟังก์ชันที่ส่งออกค่า (0 หรือ 1)
ในการจัดรูปแบบซับซ้อนสามารถใช้ 2 เทคนิคคือ ฟังก์ชัน printf () และ sprintf () ฟังก์ชันนี้ทำงานลักษณะเดียวกัน ยกเว้น printf () พิมพ์ข้อความจัดรูปแบบไปยัง browser และ sprintf () ส่งออกข้อความจัดรูปแบบ
ไวยากรณ์ของฟังก์ชัน คือ
string sprintf (string format [,mixed args...])
int printf (string format [,mixed args...])
พารามิเตอร์แรกที่ส่งผ่านทั้ง 2 ฟังก์ชัน คือข้อความจัดรูปแบบที่อธิบายลักษณะพื้นฐานของผลลัพธ์ด้วยรหัสรูปแบบแทนที่ตัวแปร พารามิเตอร์อื่นเป็นตัวแปรที่จะแทนที่ในข้อความจัดรูปแบบ
ตัวอย่าง การใช้ echo พิมพ์ตัวแปรที่ต้องการ
echo "จำนวนรวมของใบสั่งซื้อคือ $amount";
printf () ใช้ดังนี้
printf ("จำนวนรวมของใบสั่งซื้อคือ %s", $amount);
%s ในข้อความจัดรูปแบบคือการเรียกข้อกำหนดการแปลง รหัสหมายถึง "แทนที่ด้วยข้อความ" ในกรณีนี้ถูกแทนที่ด้วย $amount ที่แปลเป็นข้อความ
ถ้าค่าเก็บใน $total คือ 12.4 ทั้ง 2 คำสั่งจะพิมพ์เป็น 12.4
ข้อได้เปรียบของ printf () คือ สามารถใช้ข้อกำหนดการแปลงอื่น เพื่อระบุ $amount คือ เลขทศนิยม และควรมีทศนิยม 2 ตำแหน่ง หลังจุดทศนิยม
printf ("จำนวนรวมของใบสั่งซื้อคือ %.2f ",$amount);
ในข้อความจัดรูปแบบมีได้หลายข้อกำหนดการแปลง ถ้ามี n ข้อกำหนดการแปลง ควรมี n อากิวเมนต์หลังจากข้อความรูปแบบ แต่ละข้อกำหนดการแปลงได้รับการแทนที่ โดยอากิวเมนต์จัดรูปแบบตามลำดับในรายการ
printf ("จำนวนรวมของใบสั่งซื้อคือ %.2f (ค่าจัดส่ง %.2f ) ", $freight);
ข้อกำหนดการแปลงแรกใช้ตัวแปร $amount และที่ 2 ใช้ตัวแปร $freight
%[padding_chaeacter] [-] [width] [.precision]type
แต่ละข้อกำหนดการแปลงมีรูปแบบเหมือนกันคือ
padding_chaeacter เป็นตัวเลือกใช้รองรับตัวแปรกับความกว้างที่ระบุ ตามตัวอย่างใช้เพิ่มศูนย์นำหน้าตัวเลข เหมือนตัวนับ
สัญลักษณ์ เป็นตัวเลือกระบุว่าข้อมูลในฟิลด์ชิดซ้ายแทนที่ชิดของตามค่าเริ่มต้น
width บอก printf () รู้ถึงที่ว่าง ( เป็นตัวอักษร) ให้เหลือไว้กับตัวแปรที่ถูกแทนที่
precision ต้องเริ่มต้นด้วยจุดทศนิยม และเก็บตัวเลขตำแหน่งหลังจุดทศนิยมที่ต้องการแสดง
type คือ รหัสประเภท ตามการสรุปในตาราง 1.5.1
ตาราง 1.5.1 รหัสประเภทข้อกำหนดการแปลง
ประเภท |
ความหมาย |
b |
แปลเป็นจำนวนเต็ม และพิมพ์เป็นเลขฐาน 2 |
c |
แปลเป็นจำนวนเต็ม และพิมพ์เป็นตัวอักษร |
d |
แปลเป็นจำนวนเต็ม และพิมพ์เป็นเลขฐาน 10 |
f |
แปลเป็น double และพิมพ์เป็นจุดทศนิยม |
o |
แปลเป็นจำนวนเต็ม และพิมพ์เป็นเลขฐาน 8 |
s |
แปลเป็นข้อความและพิมพ์เป็นข้อความ |
x |
แปลเป็นจำนวนเต็ม และพิมพ์เป็นเลขฐาน 16 ด้วยตัวพิมพ์เล็ก สำหรับเลข a-f |
X |
แปลเป็นจำนวนเต็ม และพิมพ์เป็นเลขฐาน 16 ด้วยตัวพิมพ์ใหญ่ สำหรับเลข A-F |
การเปลี่ยนตัวพิมพ์ของข้อความ
ตัวพิมพ์ของข้อความสามารถจัดรูปแบบใหม่ด้วยฟังก์ชันเปลี่ยนตัวพิมพ์ ผลของฟังก์ชันเหล่านี้สรุปอยู่ในตาราง 1.5.2
ตาราง 1.5.2 ฟังก์ชันตัวพิมพ์และผลลัพธ์
ฟังก์ชัน |
คำอธิบาย |
การใช้
$subject |
ผลลัพธ์
Feedback from wed site |
strtoupper (mb_strtoupper) |
เปลี่ยนข้อความเป็นตัวพิมพ์ใหญ่ |
strtoupper($subject) |
HELLO WORLD AND EVERYBODY |
strtolower (mb_strtolower) |
เปลี่ยนข้อความเป็นตัวพิมพ์เล็ก |
strtolower ($subject) |
hello world and everybody |
ucfirst () |
เปลี่ยนตัวอักษรแรกของข้อความเป็นตัวพิมพ์ใหญ่ |
ucfirst ($subject) |
Hello world and everybody |
การจัดรูปแบบสำหรับการจัดเก็บในฐานข้อมูล
ฟังก์ชันข้อความ adddslashes () และ stripslashes () สามารถใช้จัดรูปแบบข้อความใหม่สำหรับการจัดเก็บในฐานข้อมูล
ตัวอักษรบางประเภท เช่น เครื่องหมายคำพูด ( ' และ " ), backslash (\) และตัวอักษร NULL มีปัญหากับการแปลความหมายของฐานข้อมูลเพื่อการจัดเก็บเข้าสู่ฐานข้อมูล ดังนั้นจึงจำเป็นต้องหาวิธีการระบุ หรือ escape ตัวอักษรเหล่านี้เพื่อให้ฐานข้อมูล เช่น MySql สามารถเข้าใจความหมายตัวอักษรพิเศษ แล้วทำ escape ตัวอักษรเหล่านี้โดยให้เพิ่ม backslash ข้างหน้า เช่น "(double quote) จะเป็น \" และ \ (backslash) จะเป็น \\ (กฎที่ประยุกต์แบบทั่วไปกับอักษรพิเศษ ถ้ามี \\ ในข้อความต้องแทนที่ด้วย \\\\)
PHP มี 2 วิธีฟังก์ชันพิเศษที่ออกแบบสำหรับการออกแบบตัวอักษร ก่อนการเขียนข้อความเข้าสู่ฐานข้อมูล ควรจัดรูปแบบด้วย addslashes ()
$stringvar = addslashes ($stringvar);
addslashes นำข้อความเป็นพารามิเตอร์และส่งออกข้อความจัดรูปแบบใหม่
เมื่อใช้ addslashes () แล้ว ข้อความได้รับการเก็บในฐานข้อมูลด้วย slash ในข้อความนั้น เมื่อดึงข้อความออกมาต้องตัด slash ออกด้วยฟังก์ชัน stripslashes ()
$stringvar = stripslashes ($stringvar);
|