PHP8+ พื้นฐาน
พื้นฐาน
ความรู้เบื้องต้นเกี่ยวกับภาษา PHP
เริ่มต้นทำงาน
การรันโค้ด PHP
ปัญหาเกี่ยวกับการเข้ารหัสตัวอักษร
การแสดงผลข้อผิดพลาดของ PHP
โค้ดแบบเต็มสำหรับการรัน PHP
โค้ดสำหรับการรันที่ได้รับการปรับปรุง
ภาพรวมคำสั่งเริ่มต้นของ PHP
ความคิดเห็นใน PHP
ความคิดเห็นในหนังสือเรียน
การดัมป์ตัวแปร
ฟังก์ชันใน PHP
ตัวแปร
การใช้ตัวแปร
การเปลี่ยนแปลงค่าตัวแปร
การดำเนินการทางคณิตศาสตร์กับตัวเลข
การดำเนินการทางคณิตศาสตร์กับตัวแปร
ลำดับความสำคัญของการดำเนินการทางคณิตศาสตร์
ลำดับความสำคัญเท่ากัน
วงเล็บสำหรับจัดกลุ่ม
รายละเอียดปลีกย่อยของการจัดกลุ่ม
เศษส่วน
จำนวนลบ
เศษจากการหาร
การยกกำลัง
ลำดับความสำคัญของการยกกำลัง
สตริง
การต่อสตริง
ช่องว่างเมื่อต่อสตริง
ความยาวของสตริง
ปัญหาเกี่ยวกับตัวอักษรซีริลลิก
แท็ก
แอตทริบิวต์ของแท็ก
ค่าบูลีน
ค่า null
การแปลงประเภทอัตโนมัติ
การแปลงเป็นสตริงอัตโนมัติ
รายละเอียดปลีกย่อยของการแปลงเป็นสตริง
การแปลงเป็นตัวเลข
การแปลงเป็นเศษส่วน
การแปลงเศษส่วนเป็นจำนวนเต็ม
การแปลงตัวเลขเป็นสตริง
ตัวอักษรของสตริง
ตัวเลขในสตริง
การเข้าถึงตัวเลขของตัวเลข
รายละเอียดปลีกย่อยของการทำงานกับตัวดำเนินการกำหนดค่า
ตัวดำเนินการแบบย่อ
การเพิ่มค่า
ประเภทนำหน้าและประเภทตามหลัง
ฝึกปฏิบัติการค้นหาข้อผิดพลาด
ฝึกปฏิบัติการดำเนินการ
ฝึกปฏิบัติสูตร
อาเรย์
รู้จักกับอาเรย์
การดูเนื้อหาในอาเรย์
สมาชิกแต่ละตัวของอาเรย์
อาเรย์แบบ associative
เทคนิคเกี่ยวกับคีย์
ลำดับของสมาชิก
ความยาวของอาเรย์
การเปลี่ยนค่าสมาชิก
การเขียนทับค่าสมาชิกอาเรย์
การเพิ่มค่าสมาชิก
การเติมข้อมูลในอาเรย์
การระบุคีย์แบบชัดเจน
คีย์จากตัวแปร
แบบฝึกหัดหาข้อผิดพลาด
เงื่อนไข
คำสั่ง if-else
ตัวดำเนินการมากกว่าและน้อยกว่า
การตรวจสอบความเท่ากัน
การตรวจสอบความไม่เท่ากัน
การเปรียบเทียบตัวแปร
ชนิดข้อมูลและคำสั่ง if-else
ตัวเลขในเครื่องหมายคำพูด
ความเท่ากันทั้งค่าและชนิด
ความไม่เท่ากันทั้งค่าและชนิด
รายละเอียดปลีกย่อยในการเปรียบเทียบชนิดข้อมูล
เงื่อนไขที่ซับซ้อนใน if-else
AND ทางตรรกะ
OR ทางตรรกะ
ลำดับความสำคัญของการดำเนินการเปรียบเทียบ
การจัดกลุ่มเงื่อนไข
การกลับค่าความจริงของประโยค
คำสั่ง if-else และค่าบูลีน
การเปรียบเทียบค่าตรรกะแบบไม่เข้มงวด
if แบบย่อ
รายละเอียดปลีกย่อยของการดำเนินการแบบย่อ
คำสั่ง isset
การปิดการเตือน (warning)
การตรวจสอบองค์ประกอบของอาร์เรย์
คำสั่ง empty
ความไม่จำเป็นของคำสั่ง else
ความไม่จำเป็นของวงเล็บปีกกา
ปัญหาของความไม่จำเป็นของวงเล็บ
การจัดรวม if-else
คำสั่ง elseif
if ซ้อนกัน
คำสั่ง switch
ความไม่จำเป็นของ default
คำสั่ง match
ความไม่จำเป็นของ break
ตัวดำเนินการ三元 (Ternary Operator)
ตัวดำเนินการรวมกับ null (Null Coalescing Operator)
สายโซ่ของตัวดำเนินการรวมกับ null
การดำเนินการทางตรรกะ
การกำหนดส่วนของชั่วโมง
การตรวจสอบความยาวของสตริงและอาร์เรย์
การตรวจสอบอักขระของสตริง
การตรวจสอบเศษจากการหาร
แบบฝึกหัดการค้นหาข้อผิดพลาด
แบบฝึกหัด if else
การวนซ้ำ
บทนำ
การวนซ้ำ foreach
การวนซ้ำ foreach พร้อมคีย์
การวนซ้ำ while
การวนซ้ำ for
เงื่อนไขในการวนซ้ำ
การสะสมผลรวมของตัวเลข
การสะสมผลรวมขององค์ประกอบ
การสร้างสตริงในการวนซ้ำ
ความไม่จำเป็นของวงเล็บปีกกา
ปัญหาความไม่จำเป็นของวงเล็บ
คำสั่ง break
คำสั่ง continue
การทำงานกับแฟล็ก
การวนซ้ำซ้อน
การวนซ้ำ for สำหรับอาร์เรย์
การเติมอาร์เรย์ในการวนซ้ำ
การเปลี่ยนแปลงอาร์เรย์ในการวนซ้ำ
คำแนะนำในการเขียนโค้ด
ฝึกหัดการค้นหาข้อผิดพลาด
แบบฝึกหัดเรื่องการวนซ้ำ
หลายมิติ
บทนำ
อาร์เรย์สามมิติ
อาร์เรย์เชื่อมโยง
อาร์เรย์ตามอำเภอใจ
การวนซ้ำอาร์เรย์หลายมิติ
การวนซ้ำอาร์เรย์สามมิติ
การทำงานกับคีย์
การเติมอาร์เรย์หลายมิติ
การเติมตัวเลขตามลำดับ
อาร์เรย์ของอาร์เรย์เชื่อมโยง
การแปลงอาร์เรย์หลายมิติ
ฟังก์ชันทางคณิตศาสตร์
ฟังก์ชันจัดการสตริง
ความยาวสตริง
ตัวพิมพ์
การตัดสตริง
การตรวจสอบสตริง
การค้นหาในสตริง
การแยกสตริง
การตัดช่องว่างหัวท้ายสตริง
การแสดงผลสตริงด้วยการแทรก
การจัดรูปแบบการแสดงตัวเลข
การกลับสตริง
การเติมสตริง
การทำงานกับแท็ก
รหัสตัวอักษร
การนับสตริงย่อย
ส่วนของสตริง
ฟังก์ชันสำหรับอาร์เรย์
การค้นหาในอาร์เรย์
องค์ประกอบส่วนปลาย
การตัดแบ่งอาร์เรย์ (Slicing)
การต่อ/แทรกอาร์เรย์ (Splicing)
ช่วงในอาร์เรย์
การเติมอาร์เรย์
การรวมอาร์เรย์
คีย์และค่า
การกลับลำดับ
การแทนที่
การลบข้อมูลซ้ำ
การนับองค์ประกอบ
การแบ่งเป็นอาร์เรย์ย่อย
การจัดเรียง
การดำเนินการเซต
สุ่ม
เวลา
การทำงานกับ timestamp
การจัดรูปแบบ
การแยกวิเคราะห์วันที่ในรูปแบบอิสระ
การตรวจสอบความถูกต้อง
เขตเวลา
การเปลี่ยนแปลง
การเปรียบเทียบแบบสตริง
การเปรียบเทียบวันที่โดยไม่มีปี
การตรวจสอบวันที่ตกอยู่ในช่วงเวลา
การเปรียบเทียบ timestamp
ฟังก์ชันที่ผู้ใช้กำหนดเอง
บทนำ
พารามิเตอร์ของฟังก์ชัน
พารามิเตอร์หลายตัว
พารามิเตอร์แบบตัวแปร
พารามิเตอร์ที่เลือกได้
คำสั่ง return
การเรียกใช้งานฟังก์ชันแบบลำดับ
จุดละเอียดอ่อนของ return
ลูปและ return
การนำ return ไปใช้ในลูป
เทคนิคการทำงานกับ return
แฟล็กในฟังก์ชัน
โอเปอเรเตอร์เชิงตรรกะในฟังก์ชัน
คำแนะนำเกี่ยวกับฟังก์ชัน
ฝึกปฏิบัติการค้นหาข้อผิดพลาด
ฝึกปฏิบัติเกี่ยวกับฟังก์ชัน
ขอบเขตการมองเห็น
การอ้างอิงแบบพรีมิทีฟ
การอ้างอิงอาร์เรย์
การอ้างอิงใน foreach
ตัวแปรภายใน
ตัวแปรภายนอก
ตัวแปรชื่อเดียวกัน
ตัวแปรโกลบอล
การเปลี่ยนแปลงพารามิเตอร์
พารามิเตอร์แบบอ้างอิง
การเรียกซ้ำ
การเรียกซ้ำ
ตัวอย่างพร้อมพารามิเตอร์
ผลรวมขององค์ประกอบอาเรย์
การเรียกซ้ำและอาเรย์หลายมิติ
ผลรวมของอาเรย์หลายมิติ
การจัดการกับองค์ประกอบ
นิพจน์ปกติ
บทนำ
โอเปอเรเตอร์การทำซ้ำ
วงเล็บสำหรับจัดกลุ่ม
การ Escape อักขระพิเศษ
รายการอักขระพิเศษ
วงเล็บปีกกา
การจำกัดความตะกละ
กลุ่มอักขระ
ชุดอักขระ
การกลับค่าชุดอักขระ
ลักษณะเฉพาะของตัวอักษรซีริลลิก
อักขระพิเศษภายในชุด
กลุ่มอักขระภายในชุด
อักขระพิเศษข้อยกเว้นภายในชุด
อักขระเครื่องหมายหมวกภายในชุด
ลักษณะเฉพาะของยัติภังค์ภายในชุด
จุดเริ่มต้นและจุดสิ้นสุดของสตริง
จุดสิ้นสุดหรือจุดเริ่มต้นของคำ
คำสั่ง 'หรือ'
ตัวกำหนดขอบเขต
การ Escape ตัวกำหนดขอบเขต
แบ็กสแลช
การตรวจสอบสตริง
การทดสอบนิพจน์ปกติอัตโนมัติ
การตรวจสอบทั้งสตริง
กลุ่มจับเมื่อค้นหา
การค้นหาการจับคู่ทั้งหมด
การจับคู่ทั้งหมดเป็นกลุ่มจับ
การเปลี่ยนพฤติกรรมการค้นหา
วงเล็บที่ไม่เก็บค่า
กลุ่มจับเมื่อแทนที่
กลุ่มจับในนิพจน์
กลุ่มจับที่มีชื่อ
กลุ่มจับที่มีชื่อภายในนิพจน์
หมายเลขกลุ่มจับรวม
การมองไปข้างหน้า
การมองย้อนกลับ
การแทนที่ด้วย Callback
ตัวปรับแต่ง
การไม่สนใจตัวพิมพ์-เล็กใหญ่ในนิพจน์ปกติ
ความคิดเห็นในนิพจน์ปกติ
การทำงานกับ Unicode ในนิพจน์ปกติ
การเปลี่ยนความตะกละของนิพจน์ปกติ
การ Escape อักขระธรรมดาในนิพจน์ปกติ
ตัวปรับแต่งนิพจน์ปกติหลายตัว
การ Escape อักขระพิเศษอัตโนมัติ
การกรองอาร์เรย์
การแบ่งสตริงเป็นอาร์เรย์
การสร้างสตริง
การแทรกตัวแปร
การแทรกองค์ประกอบอาเรย์
การแทรกองค์ประกอบอาเรย์เชื่อมโยง
ลูปและการแทรกตัวแปร
การแทรกองค์ประกอบอาเรย์ในลูป
การแทรกองค์ประกอบอาเรย์หลายมิติในลูป
การสร้างแท็ก
การสร้างแท็กพร้อมแอตทริบิวต์
ลูปและการสร้างแท็ก
ลูปและการสร้างแท็กจากอาเรย์
ลูปและการสร้างแท็กและแอตทริบิวต์
ลูปและการสร้างตาราง HTML
การสร้างตาราง HTML ด้วยลูปเดียว
การสร้างตาราง HTML ด้วยสองลูปซ้อนกัน
การแทรกโค้ด PHP ใน HTML
คำสั่ง echo แบบสั้น
การแสดงผลตัวแปรใน HTML
การแสดงผลองค์ประกอบอาเรย์ใน HTML
เงื่อนไขและการแยกโค้ด PHP
บล็อก else ในการแยกโค้ด PHP
บล็อก elseif ในการแยกโค้ด PHP
ลูปและการแยกโค้ด PHP
อาเรย์ในลูปในการแยกโค้ด PHP
ฟอร์ม
บทนำสู่ฟอร์ม
วิธีการส่งฟอร์ม
การรับข้อมูลจากฟอร์ม
การรับข้อมูลจากฟอร์มด้วยวิธี GET
การรับข้อมูลจากฟอร์มด้วยวิธี POST
การจัดการฟอร์มในไฟล์เดียว
การซ่อนฟอร์มหลังจากส่ง
การรักษาค่าของฟอร์ม
การรักษาค่าเริ่มต้นของฟอร์ม
โค้ดแบบย่อสำหรับการรักษาค่าเริ่มต้น
องค์ประกอบ textarea
การรักษาค่าใน textarea หลังการส่ง
ช่องทำเครื่องหมาย (Checkbox)
รายละเอียดในการใช้ช่องทำเครื่องหมาย
การรักษาค่าในช่องทำเครื่องหมาย
ปุ่มตัวเลือก (Radio)
การรักษาค่าในปุ่มตัวเลือก
กล่องเลือก (Select)
แอตทริบิวต์ value ในกล่องเลือก
การรักษาค่าในกล่องเลือก
คำขอแบบ GET
คำขอแบบ GET ผ่านลิงก์
ภาคปฏิบัติ
เซสชัน
รู้เบื้องต้นเกี่ยวกับเซสชัน
ปัญหาที่อาจเกิดขึ้น
การใช้เซสชันในหน้าเดียว
การลบเซสชัน
การสิ้นสุดเซสชันทั้งหมด
เซสชันและฟอร์ม
การเขียนอาเรย์ลงในเซสชัน
คุกกี้
รู้จักกับคุกกี้
ปัญหาการตั้งค่าคุกกี้
การตั้งค่าคุกกี้ทันที
ตัวนับการรีโหลดหน้า
อายุคุกกี้
การลบคุกกี้
การลบคุกกี้ทันที
ระบบไฟล์
การอ่านไฟล์
การเขียนไฟล์
การรวมการดำเนินการ
พาธแบบสัมพัทธ์
พาธแบบสัมบูรณ์
ข้อดีของพาธแบบสัมบูรณ์
พาธแบบสัมบูรณ์ไปยังสคริปต์
การเปลี่ยนชื่อไฟล์
การย้ายไฟล์
การคัดลอกไฟล์
การลบไฟล์
การตรวจหาขนาดไฟล์
การตรวจสอบการมีอยู่ของไฟล์
การสร้างโฟลเดอร์
การลบโฟลเดอร์
การเปลี่ยนชื่อโฟลเดอร์
การย้ายโฟลเดอร์
การอ่านเนื้อหาโฟลเดอร์
แยกแยะโฟลเดอร์จากไฟล์
วิเคราะห์เนื้อหาโฟลเดอร์
การแทรกไฟล์
การแบ่งมาร์กอัปเป็นองค์ประกอบ
การเขียนการแทรกลงในตัวแปร
การเชื่อมต่อไฟล์
การเชื่อมต่อไฟล์ครั้งเดียว
การเขียนการเชื่อมต่อลงในตัวแปร
ฐานข้อมูล
ความรู้เบื้องต้นเกี่ยวกับฐานข้อมูล
PhpMyAdmin
ตารางทดสอบ users
การเตรียมการจัดการต่าง ๆ
การส่งคำสั่ง查询ไปยังฐานข้อมูล
การค้นหาข้อผิดพลาดในฐานข้อมูล
การทดสอบการทำงาน
ปัญหาเกี่ยวกับการเข้ารหัสตัวอักษร
โค้ดทดสอบแบบสมบูรณ์
การรับผลลัพธ์
การรับผลลัพธ์ในรูปแบบอาร์เรย์
การสร้างอาร์เรย์ภายในลูป
การเลือกข้อมูล
การดำเนินการทางตรรกะ
ฟิลด์สำหรับการเลือก
การเพิ่มข้อมูล
การเพิ่มข้อมูลเมื่อไม่มีคอลัมน์บางส่วน
การอัปเดตข้อมูล
การลบข้อมูล
การจัดเรียงข้อมูล
การจำกัดจำนวน
การนับจำนวน
การรับจำนวน
คำสั่งขั้นสูง
การจัดระเบียบฐานข้อมูล
การเชื่อมโยงตาราง
การรับข้อมูลจากตารางที่เชื่อมโยงกัน
สายโซ่ของตารางที่เชื่อมโยงกัน
การเชื่อมโยงผ่านตารางเชื่อมโยง
ความสัมพันธ์ทางเครือญาติ
ผู้สืบทอดหลายคน
ความสัมพันธ์สองทาง
ปฏิบัติการ
ปฏิบัติการฐานข้อมูล
การทำงานกับ HTTP
หนังสือเรียน HTTP
เมธอดของคำขอ HTTP
เฮดเดอร์คำขอ HTTP
อาเรย์ของเฮดเดอร์คำขอ HTTP
เฮดเดอร์การตอบสนอง HTTP
ปัญหากับเฮดเดอร์การตอบสนอง HTTP
ปัญหากับ include
การส่งบรรทัดเริ่มต้นของการตอบสนอง HTTP
การส่งสถานะการตอบสนอง HTTP
การเปลี่ยนเส้นทาง
รู้เบื้องต้นเกี่ยวกับการเปลี่ยนเส้นทาง
การเปลี่ยนเส้นทางทันที
คำขอ GET และการเปลี่ยนเส้นทาง
การเปลี่ยนเส้นทางไปยังตัวเองพร้อมเพิ่มพารามิเตอร์
ข้อความแฟลช
อาเรย์ของข้อความแฟลช
การบันทึกฟอร์ม
ข้อความแสดงผลสำเร็จในการส่ง
การเปลี่ยนเส้นทางเมื่อตรวจสอบความถูกต้องของฟอร์ม
การยืนยันตัวตน
บทนำ
การอนุญาต
เซสชัน
ออกจากระบบ
การสมัครสมาชิก
การอนุญาตทันทีหลังสมัครสมาชิก
เพิ่ม id ลงในเซสชัน
การซ่อนรหัสผ่าน
การตรวจสอบชื่อผู้ใช้ว่าถูกใช้ไปแล้วหรือไม่
การตรวจสอบความถูกต้อง
การแฮช
การเติมเกลือในการสมัครสมาชิก
การเติมเกลือในการยืนยันตัวตน
ฟังก์ชัน password_hash
โปรไฟล์
บัญชีผู้ใช้
การเปลี่ยนรหัสผ่าน
การยืนยันรหัสผ่าน
การลบบัญชีผู้ใช้
สิทธิ์
การสมัครสมาชิกพร้อมแบ่งสิทธิ์
สิทธิ์และการจัดรูปแบบฐานข้อมูลให้เป็นปกติ
ระบบจัดการเว็บไซต์
บทนำ
การใช้ไฟล์ htaccess
ระบบจัดการเว็บไซต์แบบใช้ไฟล์
ไตเติลในระบบจัดการเว็บไซต์แบบไฟล์
ไตเติลในอาร์เรย์
ไตเติลในเนื้อหา
หน้า 404 ในระบบจัดการเว็บไซต์แบบไฟล์
ระบบจัดการเว็บไซต์แบบฐานข้อมูล
URL ที่อ่านง่ายในระบบจัดการเว็บไซต์
การกำหนดเส้นทาง (Routing) อย่างง่าย
การกำหนดเส้นทางด้วยพารามิเตอร์ที่มีชื่อ
พารามิเตอร์หลายตัวในเส้นทาง
ภาคปฏิบัติ