PHP ทำให้อักษรตัวแรกเล็ก ทำให้ตัวอักษรตัวแรกเป็นตัวพิมพ์ใหญ่ (PHP)

ค่อนข้างหายาก แต่ก็ยังมีความต้องการเกิดขึ้น วิธีแปลงตัวอักษรตัวแรกใน php Cyrillic ให้เป็นตัวพิมพ์ใหญ่

นี่คือเมื่อตัวอักษรตัวแรกของคำกลายเป็นตัวพิมพ์ใหญ่ สามารถใช้วิธีนี้ได้ เช่น เพื่อรวมการสะกดชื่อผู้ใช้ หรือเมื่อคุณต้องการเขียนข้อความเป็นประโยคโดยอัตโนมัติ

วิธีใช้อักษรตัวแรก php ละตินเป็นตัวพิมพ์ใหญ่

ทุกอย่างค่อนข้างง่ายที่นี่: PHP มี 2 ฟังก์ชัน: ucfirst() และ ucwords() ตัวแรกใช้อักษรตัวพิมพ์ใหญ่เฉพาะตัวอักษรตัวแรกในบรรทัด ส่วนตัวที่สองใช้อักษรตัวพิมพ์ใหญ่ตัวแรกของแต่ละคำในบรรทัด

// string $str = "ตัวอักษรตัวแรก"; // ทำให้อักษรตัวแรกเป็นตัวพิมพ์ใหญ่ echo ucfirst($str) -


ตัวอักษรตัวแรก
และ
จดหมายฉบับแรก

เราเห็นความแตกต่าง จะไม่มีปัญหากับข้อความภาษาอังกฤษ (หรืออื่น ๆ ) ที่เขียนเป็นภาษาละติน

วิธีเปลี่ยนอักษรตัวแรกให้เป็นตัวพิมพ์ใหญ่ php cyrillic Windows-1251 (CP-1251)

จะไม่มีปัญหาใหญ่กับ Cyrillic (ตัวอักษรรัสเซีย) ที่เขียนด้วยการเข้ารหัส Windows-1251:

// string $str = "ตัวอักษรตัวแรก"; // ทำให้อักษรตัวแรกเป็นตัวพิมพ์ใหญ่ echo ucfirst($str) -
"; // ตัวอักษรตัวแรกของทุกคำ echo ucwords($str);

เป็นผลให้เราได้รับสองบรรทัด:
ตัวอักษรตัวแรก
และ
จดหมายฉบับแรก

วิธีแปลงตัวอักษรตัวแรก php cyrillic UTF-8 ให้เป็นตัวพิมพ์ใหญ่

แต่ทันทีที่มาถึง UTF-8 ปัญหาก็เริ่มต้นขึ้นเนื่องจากอักษรซีริลลิกใน UTF-8 ใช้เวลา 2 ไบต์ดังนั้นจึงไม่มีอะไรทำงาน ในการดำเนินการนี้ เราจะใช้ "ไม้ยันรักแร้" จาก Multibyte String Functions หากติดตั้งปลั๊กอินนี้ใน PHP คุณสามารถใช้ 2 ฟังก์ชันที่คล้ายกัน: mb_ucfirst และ mb_convert_case

และหากไม่มีอยู่ คุณจะต้องเสริมโค้ดด้วยทางเลือกของคุณเอง:

If (!function_exists("mb_ucfirst") && extension_loaded("mbstring")) ( /** * mb_ucfirst - แปลงอักขระตัวแรกเป็นตัวพิมพ์ใหญ่ * @param string $str - string * @param string $encoding - การเข้ารหัสเริ่มต้น UTF-8 * @return string */ function mb_ucfirst($str, $encoding="UTF-8") ( $str = mb_ereg_replace("^[\ ]+", "", $str); $str = mb_strtoupper( mb_substr($) str, 0, 1, $encoding), mb_substr($str, 1, mb_strlen($str), $encoding); กลับ $str; ) $str = "ตัวอักษรตัวแรก"; // พยายามแปลงอักษรซีริลลิกเป็น Unicode โดยใช้ฟังก์ชัน ucfirst echo ucfirst($str) -
"; // พยายามแปลงอักษรซีริลลิกเป็น Unicode โดยใช้ฟังก์ชัน ucwords echo ucwords($str) "
"; // ประมวลผลโดยฟังก์ชันที่ประกาศไว้ mb_ucfirst() echo mb_ucfirst($str) . "
"; // แปลงโดยใช้ฟังก์ชัน mb_convert_case echo mb_convert_case($str, MB_CASE_TITLE, "UTF-8");

ผลลัพธ์ของโค้ดนี้จะเป็นบรรทัดต่อไปนี้

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

ฉันไม่ได้พูดถึงการเข้ารหัสเพราะว่า PHP มีฟังก์ชันในตัวสำหรับสิ่งนี้ นี่คือ ucfirst() แต่มันไม่เหมาะกับเราเพราะว่า... ใช้งานได้กับอักขระละตินเท่านั้น เหล่านั้น. หากคุณใช้ฟังก์ชันนี้เพื่อพยายามยกอักษรตัวแรกของคำว่า "บ้าน" ทุกอย่างจะเรียบร้อยดีและคุณจะได้ "บ้าน" เป็นผลลัพธ์ และถ้าคุณทำเช่นเดียวกันกับคำว่า "บ้าน" ผลลัพธ์จะยังคงเหมือนกับ "บ้าน" ด้วยตัวอักษรตัวเล็ก สิ่งนี้เกิดขึ้นเนื่องจากเราใช้อักขระภาษารัสเซียในการเข้ารหัส UTF-8 เช่น หลายไบต์และ ucfirst() ใช้สำหรับการเข้ารหัสไบต์เดียว

PHP มีฟังก์ชันสำหรับการทำงานกับสตริงในการเข้ารหัสแบบหลายไบต์ และเราใช้ฟังก์ชันเหล่านี้ในฟังก์ชันที่แสดงด้านล่างเพื่อทำให้ตัวอักษรตัวแรกในการเข้ารหัสแบบหลายไบต์เป็นตัวพิมพ์ใหญ่

ฟังก์ชันที่ใช้อักษรตัวแรกเป็นตัวพิมพ์ใหญ่ /** * ตัวอักษรตัวแรกตัวพิมพ์ใหญ่ การทำงานกับการเข้ารหัสแบบหลายไบต์

* * @param $str * @param string $encoding * @return string */ function upFirstLetter($str, $encoding = "UTF-8") ( return mb_strtoupper(mb_substr($str, 0, 1, $encoding), $encoding) .mb_substr($str, 1, null, $encoding) echo upFirstLetter("บ้าน"); // จะพิมพ์ "บ้าน"

ใน PHP มีฟังก์ชัน ucfirst() ซึ่งใช้อักษรตัวแรกในบรรทัดเป็นตัวพิมพ์ใหญ่ ucwords() - ใช้ตัวพิมพ์ใหญ่ในทุกคำของบรรทัด ปัญหาเกิดขึ้นเมื่อทำงานกับ Cyrillic และ Unicode

Cyrillic และ Unicode เป็นปัญหานิรันดร์ใน PHP ทุกเวอร์ชัน ปัญหาได้รับการแก้ไขแล้วบางส่วน มีฟังก์ชัน string mb_convert_case (string str, โหมด int [, การเข้ารหัสสตริง]) ซึ่งใช้เป็นพารามิเตอร์ สตริง, โหมดการแปลง ( 0 - ตัวอักษรทั้งหมดเป็นตัวพิมพ์ใหญ่ 1 - ตัวอักษรทั้งหมดเป็นตัวพิมพ์เล็ก 2 - ตัวอักษรทั้งหมดของคำทั้งหมดเป็นตัวพิมพ์ใหญ่) และการเข้ารหัส

การแปลงตัวอักษร

ภารกิจ: แปลงตัวอักษรตัวแรกในสตริงและแปลงตัวอักษรตัวแรกทั้งหมดในคำทั้งหมดในสตริง

ตัวอักษรภาษาอังกฤษ

ไม่มีปัญหากับตัวอักษรภาษาอังกฤษในการเข้ารหัสมาตรฐาน (UTF-8 และ Windows-1251)
ผลลัพธ์บนหน้าจอ
ตัวอักษรตัวแรก

จดหมายฉบับแรก

ซีริลลิกและ Windows-1251

ไม่มีปัญหากับตัวอักษรภาษาอังกฤษในการเข้ารหัสมาตรฐาน (UTF-8 และ Windows-1251)
ไม่ควรมีปัญหากับอักษรซีริลลิกใน Windows-1251
ตัวอักษรตัวแรก

ซีริลลิกและ UTF-8

ฟังก์ชัน ucfirst() และ ucwords() จะไม่รองรับตัวอักษรซีริลลิกใน Unicode และจะไม่มีการแปลงเกิดขึ้น

เมื่อต้องการทำเช่นนี้ ฟังก์ชัน mb_ucfirst(string str [, การเข้ารหัสสตริง]) จะถูกกำหนด ซึ่งจะประมวลผลสตริง Unicode

ไม่มีปัญหากับตัวอักษรภาษาอังกฤษในการเข้ารหัสมาตรฐาน (UTF-8 และ Windows-1251)
ตัวอักษรตัวแรก
ตัวอักษรตัวแรก
ไม่ควรมีปัญหากับอักษรซีริลลิกใน Windows-1251
ตัวอักษรตัวแรก

บ่อยครั้งเมื่อต้องรีบเพิ่มเนื้อหาลงในไซต์หรือเช่นสร้างหัวข้อใหม่บนฟอรัมผู้ใช้อาจเริ่มเขียนประโยค (ชื่อเรื่อง) ด้วยตัวอักษรตัวเล็ก (ตัวพิมพ์เล็ก) นี่เป็นข้อผิดพลาดในระดับหนึ่ง

ฉันจะแสดงหลายตัวเลือกในการแก้ปัญหานี้: PHP และ CSS เหมาะสำหรับเนื้อหาที่เผยแพร่แล้วมากกว่าเมื่อ jQuery สามารถแก้ไขสถานการณ์ก่อนเผยแพร่ได้

ตัวอักษรตัวแรกของสตริงที่เป็นตัวพิมพ์ใหญ่ใน PHP

มีฟังก์ชันใน PHP ที่เรียกว่า "ucfirst" ซึ่งเพิ่งแปลงอักขระตัวแรกของบรรทัดเป็นตัวพิมพ์ใหญ่ แต่ข้อเสียคือการทำงานกับ Cyrillic ค่อนข้างไม่ถูกต้อง

เพื่อที่จะทำสิ่งนี้ เราจะเขียนฟังก์ชันเล็กๆ ของเราเอง การใช้งานจะมีลักษณะดังนี้:

ในเวอร์ชันนี้เราจะได้รับประโยคที่ขึ้นต้นด้วยตัวพิมพ์ใหญ่ซึ่งจริงๆ แล้วคือสิ่งที่เราต้องการ

ตัวอักษรตัวแรกตัวพิมพ์ใหญ่ของสตริงใน CSS

วิธีการนี้มองเห็นได้ (นั่นคือคำแนะนำจะปรากฏตามที่อยู่ในซอร์สโค้ดของไซต์) จะแปลงอักขระตัวแรกเป็นตัวพิมพ์ใหญ่ด้วย

การใช้งานมีดังนี้:

ประโยคแรก

ประโยคที่สอง

ประโยคที่สาม

ประโยคที่สี่

#content p:อักษรตัวแรก ( การแปลงข้อความ: ตัวพิมพ์ใหญ่; )

การใช้องค์ประกอบหลอก “อักษรตัวแรก” และคุณสมบัติ “การแปลงข้อความ” เราตั้งค่าการออกแบบสำหรับอักษรตัวแรกแต่ละตัวของย่อหน้า

ตัวอักษรตัวแรกของสตริงเป็นตัวพิมพ์ใหญ่ใน jQuery

ดังที่ได้กล่าวไปแล้ว วิธีการแปลงนี้เหมาะที่สุดสำหรับสื่อที่ยังไม่ได้เผยแพร่

ตัวอย่างเช่น เราจะใช้ฟิลด์ข้อความ (ซึ่งจะทำหน้าที่เป็นฟิลด์สำหรับป้อนชื่อเรื่อง) และเขียนสคริปต์ขนาดเล็ก ซึ่งเมื่อป้อนประโยคด้วยตัวพิมพ์เล็ก จะทำให้เป็นตัวพิมพ์ใหญ่:

$(document).ready(function() ( $(".content").on("keyup", function() ( var text = $(this).val(); var new_text = text.charAt(0) .toUpperCase() + text.substr(1); $(นี้).val(new_text ));

สคริปต์ทำงานได้ทั้งเมื่อเขียนข้อความและเมื่อแทรกลงไป อย่าลืมว่าเพื่อให้สคริปต์ทำงานบนไซต์ของคุณได้ คุณต้องเปิดใช้งานไลบรารี jQuery