คู่มืออ้างอิงการใช้งาน php function
คู่มืออ้างอิงการใช้งาน php function
เกี่ยวกับหนังสือ
อ้างอิงมาจาก php manual หลักครับ แต่เอามาแต่หัวข้อนะครับ
ตัวอย่างก็ทำใหม่ มีภาพ screen shot ให้ดูด้วย
เนื้อหาจะอัพเดทใหม่ให้เรื่อยนะคับ
อยากติดตามเนื้อหาใหม่ๆ
สับตะใคร้ได้ที่
bit.ly/phpreff
คับ
สารบัญ
- คำนำ
- Roadmap
-
สารบัญ
- array sort - เรียงลำดับอาเรย์มิติเดียว
- array shuffle - สลับที่อยู่ของสมาชิกในอาเรย์ โดยการสุ่ม
- array range สร้างอาเรย์ขึ้นตามเงื่อนไขที่กำหนด
- array natsort เรียงลำดับค่าอาเรย์โดยใช้ natural order algorithm
- php array key – ใช้ดึงค่าดึงค่า key ออกจากอาเรย์
- array_search - ค้นหาคีย์ที่ต้องการ
- array_reverse - พลิกลำดับของอาเรย์
- array_reverse - พลิกลำดับของอาเรย์
- array_replace – เปลี่ยนค่าในอาเรย์โดยระบุตำแหน่ง
- array_diff_ukey – เปรียบเทียบค่า key ของอาเรย์โดยใช้ฟังก์ชันเข้ามาจัดการ
- array_reduce - ลดจำนวนสมาชิกในอาเรย์ให้เหลือตัวเดียว โดยใช้ฟังก์ชันเข้ามาจัดการ
- array_rand - สุ่มค่าจากอาเรย์
- php array_push - เพิ่มค่าลงในอาเรย์โดย เพิ่มต่อจากท้าย
- array_product - ใช้หาผลรวมของค่าทั้งหมดในอาเรย์
- array_pop - ดึงค่าท้ายสุดของอาเรย์ออกมา
- array_pad - ขยายขนาดอาเรย์และเพิ่มค่าเข้าไปใหม่
- array_multisort - เรียงลำดับค่าในอาเรย์ด้วย เงื่อนไขหลายๆ ตัว
- php array_merge_recursive – รวมอาเรย์หลายตัว โดยรวม key ที่เหมือนกันด้วย
- array_map - จัดการค่าทั้งหมดในอาเรย์โดยใช้ฟังก์ชันเพิ่มเติม
- php array merge – รวมอาเรย์หลายตัว
- CURLFile::__construct สร้างออปเจคต์จากคลาส CURL
- CURLFile::getFilename ฟังก์ชันใช้สำหรับเก็บชื่อของไฟล์
- CURLFile::getMimeType ฟังก์ชันใช้สำหรับเก็บ MIME ของไฟล์
- curl_close ยกเลิกการใช้งาน cURL
- php curl_copy_handle ฟังก์ชันใช้สำหรับโคลนออปเจคต์ของ Curl
- curl_errno ฟังก์ชันใช้สำหรับดึงจำนวนข้อผิดพลาดจากการใช้ cURL
- curl_error ฟังก์ชันใช้สำหรับดึงจำนวนข้อผิดพลาดจากการใช้ cURL
- curl_exec สั่งให้ cURL ทำงาน
- curl_escape แทนที่ช่องว่างในประโยคด้วยค่าที่กำหนด
- curl_getinfo ดึงข้อมูลการทำงานของ cURL
- curl_init สร้างออปเจคต์จากคลาส CURL ใหม่
- curl_pause ใช้สำหรับเชื่อมต่อหรือหยุดเชื่อมต่อกับปลายทาง
- curl_reset ลบข้อมูลการตั้งค่าของ การเชื่อมต่อ ที่ผ่านมา
- curl_setopt ตั้งค่าการเชื่อมต่อ
- curl_strerror ดึงข้อความบอกข้อผิดพลาด
- curl_unescape ยกเลิกการ escape ข้อมูลที่ส่งมา
- curl_version ดึงเวอร์ชันของ cURL
- cal_info ดึงข้อมูลระบบปฏิทินที่ระบบใช้อยู่
- date สร้างข้อมูลวันเวลา
- DateInterval::createFromDateString สร้างออปเจคต์ของคลาส โดยใช้คำ
- DateInterval::format จัดรูปแบบให้กับค่าวันเวลา
- DateTime::add เพิ่มค่าวันหรือเวลาตามที่กำหนด
- DateTime::createFromFormat สร้างออปเจคต์ของวันเวลา โดยกำหนดรูปแบบให้ด้วย
- DateTime::diff หาความแตกต่างของออปเจคต์ของคลาส DateTime
- DateTime::format เปลี่ยนรูปแบบของวันเวลา
- DateTime::getLastErrors ดึงค่าการแจ้งเตือนและข้อผิดพลาด
- DateTime::getTimestamp แปลงค่าวันเวลาให้อยู่ในแบบ timestamp
- DateTime::getTimezone ดึงชื่อโซนเวลาของออปเจคต์ DateTime
- DateTime::modify แก้ไขค่าในออปเจคต์ DateTime
- DateTime::setDate กำหนดวันให้ออปเจคต์ DateTime
- DateTimeZone::getLocation ดึงค่าที่อยู่ของผู้ใช้งาน เช่น ละติจูด,ลองติจูด
- DateTimeZone::getName ดึงค่าชื่อของเขตเวลานั้น
- DateTimeZone::listIdentifiers ดึงรายชื่อเขตเวลาทั้งหมด
- date_modify ใช้แก้ไขค่าในออปเจคต์ DateTime
- php localtime รับข้อมูลวันและเวลาในรูปแบบ array
- microtime แสดงวันเวลาปัจจุบันแบบ ไมโครวินาที
- mktime สร้างข้อมูลของวันเวลาตามที่ระบุไว้
- time แสดงข้อมูลของวันเวลาปัจจุบัน
- strtotime รับค่าเวลาของวันเวลาตาม string ที่ใส่มาเป็นพารามิเตอร์
- chdir เลือกโฟลเดอร์ใหม่
- chmod ตั้งสิทธิในการจัดการไฟล์
- dir สร้างออปเจคต์ของคลาส Directory
- DirectoryIterator::getExtension ดึงนามสกุลของไฟล์
- ผลลัพท์\
- DirectoryIterator::getMTime แสดงเวลาที่มีการแก้ไข แต่ละไฟล์ที่ path ปัจจุบัน
- DirectoryIterator::getOwner แสดงเจ้าของ path ปัจจุบัน
- DirectoryIterator::isReadable ตรวจว่าไฟล์สามารถอ่านได้หรือไม่
- DirectoryIterator::key ดึงลำดับไฟล์
- DirectoryIterator::next เลื่อนพอยเตอร์ไปยังไฟล์ถัดไป
- DirectoryIterator::rewind เลื่อนพอยเตอร์ไปยังไฟล์แรก
- DirectoryIterator::seek เลื่อนพอยเตอร์ไปยังไฟล์ที่กำหนด
- filesize ดึงข้อมูลขนาดของไฟล์
- fileperms ดึงค่าสิทธิในการแก้ไขไฟล์นั้น
- is_dir ตรวจว่าเป็นโฟลเดอร์หรือไม่
- is_uploaded_file ตรวจว่าเป็นไฟล์ที่ผ่านการอัพโหลดมา หรือไม่?
- pathinfo ดึงข้อมูลต่างๆ ที่เกี่ยวกับเส้นทางของไฟล์
- readdir อ่านข้อมูลจากโฟลเดอร์
- realpath ดึงค่าเส้นทางแบบเต็มๆออกมา
- scandir ดึงรายฃื่อของไฟล์และโฟลเดอร์
- stat ดึงข้อมูลแบบสถิติต่างๆ ของไฟล์
- unlink ลบไฟล์
- hash สร้างค่าที่ผ่านการเข้า รหัสแบบถอดกลับไม่ได้
- hash_algos - แสดงลิสรายชื่อของอัลกอริทึมที่ใช้ในการเข้ารหัส
- password_verify ฟังก์ชันใช้สำหรับตรวจสอบค่าที่ป้อนเข้ามาว่าตรงกับค่า hash ที่เก็บไว้หรือไม่
- mcrypt_enc_get_algorithms_name ฟังก์ชันใช้สำหรับดึงชื่ออัลกอริทึมที่ใช้เข้ารหัส ออกมาจากตัวแปร
- password_get_info ฟังก์ชันสำหรับดึงข้อมูลของค่า hash
- password_hash ฟังก์ชันสำหรับสร้างรหัสผ่านด้วยการ hash
- random_int ฟังก์ชันใช้สำหรับสร้างเลขแบบสุ่ม
- json_decode แปลง json กลับเป็นอาเรย์
- json_decode แปลง json กลับเป็นอาเรย์
- abs สร้างค่าสัมบูรณ์
- rand ใช้สุ่มค่าที่เป็นตัวเลข
- floor ปัดเศษทศนิยมลงเป็นจำนวนเต็ม
- getrandmax สร้างการสุ่มค่าที่เป็นไปได้มากที่สุด
- pi ดึงค่าของพาย
- log หาค่าลอการิทึม
- max หาค่าที่มากที่สุด
- mysqli_connect เปิดการเชื่อมต่อกับ mysql
- mysqli::$affected_rows ดึงจำนวนของข้อมูลที่ได้รับผลจากการคิวรี่
- mysqli::$client_info ดึงข้อมูลของ mysql
- mysqli::$client_version ดึงเวอร์ชันของ mysql
- mysqli::$connect_errno ดึงรหัสของข้อผิดพลาด จากการเชื่อมต่อ
- mysqli::$connect_error ดึงรายละเอียดของข้อผิดพลาด จากการเชื่อมต่อ
- mysqli::$errno ดึงรหัสของข้อผิดพลาด จากการคิวรี่
- mysqli::$errno ดึงรหัสของข้อผิดพลาด จากการคิวรี่
- mysqli::$error_list ดึงข้อมูลทั้งหมดที่เกี่ยวกับข้อผิดพลาด
- mysqli::$host_info ดึงข้อมูลของเครื่องที่ใช้งานคำสั่ง เช่น localhost หรือ unix
- mysqli::$info ดึงข้อมูลเกี่ยวกับการคิวรี่ครั้งล่าสุด
- mysqli::$insert_id ดึงไอดีของข้อมูลที่บันทึกในครั้งล่าสุด
- mysqli::$protocol_version ดึงข้อมูลเวอร์ชันของโปรโตคอลที่ mysql ใช้
- mysqli::$server_info ดึงข้อมูลเวอร์ชันของ mysql server ในรูปแบบของตัวอักษร
- mysqli::$server_version ดึงข้อมูลเวอร์ชันของ mysql server ในรูปแบบของตัวเลข
- mysqli::$sqlstate ดึงข้อผิดพลาดของ mysql
- mysqli::$thread_id ดึงค่าไอดีของโปรแกรมที่สร้างการเชื่อมต่อในขณะนั้น
- mysqli::$warning_count ดึงจำนวนการแจ้งเตือนของคิวรี่ล่าสุด
- mysqli::change_user เปลี่ยนบัญชีที่ใช้จัดการฐานข้อมูล
- mysqli::character_set_name เปลี่ยนรูปแบบของ unicode
- mysqli::close ปิดการเชื่อมต่อกับฐานข้อมูล
- mysqli::dump_debug_info ส่งประวติการทำงานออกเป็นไฟล์
- mysqli::get_charset ดึงข้อมูลรูปแบบตัวอักษรที่ใช้
- mysqli::get_client_info ดึงข้อมูลเวอร์ชันของ mysql client ในแบบของตัวอักษร
- mysqli::get_connection_stats ดึงข้อมูลประวัติการใช้งานฐานข้อมูล
- mysqli::kill หยุดการทำงานของ mysql
- mysqli::ping ทดสอบสถานะการทำงานของ mysql
- mysqli::prepare จัดเตรียมคำสั่งที่จะใช้คิวรี่
- mysqli::query ทำการคิวรี่ข้อมูล
- mysqli::real_connect เปิดการเชื่อมต่อกับ mysql
- mysqli::real_escape_string ลบอักขระต้องห้ามจากเงื่อนไขที่จะใช้คิวรี่
- mysqli::real_query ทำการคิวรี่ข้อมูล
- mysqli::select_db เลือกฐานข้อมูลที่จะใช้
- mysqli::set_charset ตั้งค่ารูปแบบตัวอักษร
- stat ดึงข้อมูลแบบสถิติต่างๆ ของไฟล์
- php base64_decode ถอดรหัส base64
- base64_encode เข้ารหัสด้วย base64
- dns_get_record ดึงข้อมูลของโดเมน
- gethostbyname ดึง ip ของโดเมน
- getprotobyname-ดึงค่า port ที่โปรโตคอลนั้นใช้
- get_headers ดึงข้อมูลของคำร้องขอ
- get_meta_tags-ดึงข้อมูลในส่วนของแท๊ก meta ของหน้าเว็บ
- header สร้างข้อมูลในส่วนของ http header
- headers_sent ตรวจสอบว่าได้ส่งค่า header ไปหรือยัง
- http_build_query สร้างคิวรี่สตริง
- http_response_code ดึงหรือตั้งค่าคำตอบกลับจากเซิร์ฟเวอร์
- ob_clean ลบค่า output buffer
- ob_end_clean ลบค่า output buffer และปิดการใช้งาน
- parse_url ตัดแบ่ง url ออกเป็นอาเรย์
- rawurlencode เข้ารหัส url ตามที่กำหนด
- syslog สร้างประวัติการทำงาน
- setcookie ส่ง cookie ไปให้ผู้ใช้งาน
- urldecode ถอดรหัสให้กับคิวรี่สตริง
- PDO::__construct การสร้างออปเจคต์เพื่อเตรียมการคิวรี่
- PDO::beginTransaction เปิดการใช้งานทรานแซคชั่น
- PDO::commit ใช้สำหรับปล่อยให้ผลการทำงานของทรานแซคชั่น ถูกบันทึก
- PDO::errorCode ดึงรหัสของข้อผิดพลาด
- PDO::errorInfo ดึงข้อมูลเกี่ยวกับข้อผิดพลาดทั้งหมด
- PDO::getAvailableDrivers ดึงรายชื่อ ฐานข้อมูลที่ PDO สนับสนุน
- inTransaction คือ ฟังก์ชันที่ใช้ ตรวจสอบว่าตอนนี้มีการใช้งานทรานแซคชั่นอยู่หรือไม่
- PDO::lastInsertId ดึงค่าไอดีของข้อมูลตัวสุดท้ายที่ได้บันทึกไปในครั้งล่าสุด
- mysqli::prepare จัดเตรียมคำสั่งที่จะใช้คิวรี่
- PDO::query เริ่มการดึงข้อมูลจากฐานข้อมูล
- PDO::quote กรองข้อมูลที่จะบันทึก
- PDO::quote กรองข้อมูลที่จะบันทึก
- PDO::rollBack ยกเลิกการทำทรานแซคชั่น
- PDOStatement::bindColumn จัดการข้อมูลในคอลัมน์โดยการผูกเข้าไปกับตัวแปร
- bindParam จัดการข้อมูลในคอลัมน์โดยการผูกเข้าไปกับพารามิเตอร์ แบบอ้างอิงหน่วยความจำในขณะนั้น
- PDOStatement::bindValue จัดการข้อมูลในคอลัมน์โดยการผูกเข้าไปกับค่าตายตัว
- preg_replace ใช้งาน regular expression ในการค้นหาและแก้ไข
- preg_match_all ใช้งาน regular expression ในการค้นหา โดยค้นหาจนเจอที่ตรงหมดทุกตัว
- preg_replace ใช้งาน regular expression ในการค้นหาและแก้ไข
- preg_split แบ่งข้อความออกโดยใช้ regeular expression
- str_shuffle สลับตำแหน่งของตัวอักษรในคำ
- strtolower แปลงตัวพิมพ์ใหญ่ให้เป็นตัวพิมพ์เล็ก
- strtoupper ใช้สำหรับแปลงตัวพิมพ์เล็กให้เป็นตัวพิมพ์ใหญ่
- str_repeat สร้างคำที่กำหนดตามจำนวนที่กำหนด
- str_split แปลงคำให้เป็นอาเรย์
- substr แยกคำในประโยคออกมาตามที่กำหนด
- wordwrap ตัดคำเพื่อขึ้นหน้าใหม่
- md5 สร้างค่าแฮชแบบ md5
- ucwords เปลี่ยนคำแรกในประโยคให้เป็นตัวใหญ่
- trim ลบช่องว่างในคำหรือประโยค
- htmlspecialchars ใช้แสดงตัวอักขระที่ลักษณะเป็นโค้ด
- htmlentities ใช้แสดงตัวอักขระที่ลักษณะเป็นโค้ด โดยไม่ต้องแปลความหมาย
- hex2bin แปลงเลขฐานสิบหกเป็นตัวอักษร
- explode แยกตัวอักษรออกตามเงื่อนไขที่กำหนด
- ctype_upper ตรวจสอบว่าประโยคนั้นมี เฉพาะตัวพิมพ์ใหญ่ เท่านั้นหรือไม่
- str_word_count นับจำนวนคำในประโยค
- ctype_lower ตรวจสอบว่าประโยคนั้นมี เฉพาะตัวพิมพ์เล็ก เท่านั้นหรือไม่
- ctype_digit ตรวจสอบว่าประโยคนั้นมี เฉพาะตัวเลข เท่านั้นหรือไม่
- ctype_alpha ตรวจสอบว่าประโยคนั้นเป็นตัวอักษร เท่านั้นหรือไม่
- htmlspecialchars_decode ถอดรหัสตัวอักขระที่ถูกแปลงโดย htmlspecialchars
- implode แปลงอาเรย์ให้กลายเป็นตัวอักษร
- lcfirst แปลงให้ตัวอักษรตัวแรกของคำกลายเป็นตัวพิมพ์เล็ก
- md5 สร้างค่าแฮชแบบ md5
- php md5_file สร้างค่าแฮชแบบ md5 โดยใช้ไฟล์
- money_format ปรับแต่งให้ตัวเลขให้อยู่ในรูปแบบเงิน
- nl2br ช่วยเพิ่มแท๊ก br แทนคำสั่งขึ้นบรรทัดใหม่เดิม
- number_format จัดรูปแบบให้ตัวเลข เช่น ใส่ลูกน้ำ
- ctype_alpha ตรวจสอบว่าประโยคนั้นเป็นตัวอักษร เท่านั้นหรือไม่
- strcasecmp เปรียบเทียบข้อความหรือประโยค
- stripslashes ลบเครื่องหมายแบคสแลชออกจากประโยค
- strpos หาตำแหน่งของตัวอักษร ตัวแรก
- ctype_digit ตรวจสอบว่าประโยคนั้นมี เฉพาะตัวเลข เท่านั้นหรือไม่
- strip_tags ใช้ลบคำที่มีลักษณะเป็นโค้ด html หรือ php ออกจากประโยค
- strlen นับจำนวนของคำรวมทั้งช่องว่างด้วย
- ctype_xdigit ตรวจสอบว่าประโยคนั้นมี เฉพาะเลขฐานสิบหก เท่านั้นหรือไม่
- addslashes ใส่เครื่องหมาย back slash ข้างหน้า predefined characters
- chunk_split ตัดตัวอักษรที่รวมเป็นประโยคออกเป็นส่วนๆ
- strstr ใช้หาสตริงจากจุดเริ่มต้นที่กำหนด
- parse_url ตัดแบ่ง url ออกเป็นอาเรย์
- sha1 สร้างค่าแฮชจากอัลกอริทึม sha1
- sha1_file สร้างค่าแฮชจากอัลกอริทึม sha1 โดยใช้ไฟล์
- ZipArchive::getNameIndex ฟังก์ชันสำหรับดึงชื่อของไฟล์ที่อยู่ในไฟล์ซิป โดยกำหนดด้วยลำดับ
- ZipArchive::addFile ใช้สำหรับเพิ่มไฟล์ ลงไฟล์ซิป
- ZipArchive::addFromString เพิ่มไฟล์ลงไปในไฟล์ซิปโดยสร้างจากตัวอักษร
- ZipArchive::deleteIndex ฟังก์ชันสำหรับลบไฟล์ที่อยู่ในไฟล์ซิปโดยใช้ลำดับ
- ZipArchive::deleteName ฟังก์ชันสำหรับลบไฟล์ที่อยู่ในไฟล์ซิปโดยใช้ชื่อ
- ZipArchive::extractTo ฟังก์ชันสำหรับแตกไฟล์ซิป
- ZipArchive::getArchiveComment ฟังก์ชันสำหรับดึงคอมเม้นของไฟล์ทั้งหมดที่อยู่ในไฟล์ซิป
- ZipArchive::getNameIndex ฟังก์ชันสำหรับดึงชื่อของไฟล์ที่อยู่ในไฟล์ซิป โดยกำหนดด้วยลำดับ
- php ZipArchive::locateName ฟังก์ชันสำหรับดึงลำดับของไฟล์ที่อยู่ในไฟล์ซิป
- php ZipArchive::open ฟังก์ชันสำหรับเปิดไฟล์ซิป
- ZipArchive::renameName ฟังก์ชันสำหรับเปลี่ยนชื่อไฟล์ที่อยู่ในไฟล์ซิป โดยกำหนดด้วยชื่อ
- ZipArchive::setArchiveComment ฟังก์ชันสำหรับเพิ่มคอมเม้นให้ไฟล์ซิป
- ZipArchive::statName ฟังก์ชันสำหรับดึงข้อมูลของไฟล์ที่อยู่ในไฟล์ซิป โดยกำหนดด้วยชื่อ
การรับประกันความพึงพอใจ 100% ภายใน 60 วันของ Leanpub
ภายใน 60 วันหลังการซื้อ คุณสามารถรับเงินคืน 100% สำหรับการซื้อใดๆ บน Leanpub ด้วยการคลิกเพียง สองครั้ง
แม้ว่าในทางเทคนิคแล้ว นี่จะเป็นความเสี่ยงสำหรับเรา เพราะคุณจะได้ไฟล์หนังสือหรือคอร์สไปแล้วก็ตาม แต่เรามั่นใจในผลิตภัณฑ์และบริการของเรา รวมถึงผู้เขียนและผู้อ่านของเรามาก จนเรายินดีที่จะเสนอการคืนเงินเต็มจำนวนสำหรับทุกสิ่งที่เราขาย
คุณจะรู้ว่าสิ่งใดดีได้ก็ต่อเมื่อได้ลองใช้ และด้วยการรับประกันคืนเงิน 100% ของเรา จึงไม่มีความเสี่ยงใดๆ ในการทดลอง!
ดังนั้น ไม่มีเหตุผลที่จะไม่คลิกปุ่มเพิ่มลงตะกร้าใช่ไหมล่ะ?
ดูเงื่อนไขฉบับเต็ม...
รับ $8 จากการซื้อ $10 และ $16 จากการซื้อ $20
เราจ่ายค่าลิขสิทธิ์ 80%สำหรับการซื้อที่มีมูลค่า$7.99 หรือมากกว่า และค่าลิขสิทธิ์ 80% หักค่าธรรมเนียมคงที่ 50 เซ็นต์สำหรับการซื้อระหว่าง$0.99 ถึง $7.98 คุณจะได้รับ $8 จากการขาย $10 และ $16 จากการขาย $20 ดังนั้น หากเราขายหนังสือของคุณ 5000 เล่มในราคา $20 โดยไม่มีการคืนเงิน คุณจะได้รับ$80,000
(ใช่ นักเขียนบางท่านได้รับมากกว่านั้นบน Leanpub แล้ว)
จริงๆ แล้ว นักเขียนได้รับรายได้มากกว่า $14 ล้านจากการเขียน ตีพิมพ์ และขายบน Leanpub
เรียนรู้เพิ่มเติมเกี่ยวกับการเขียนบน Leanpub
อัพเดทฟรี ไม่มี DRM
เมื่อคุณซื้อหนังสือ Leanpub คุณจะได้รับการอัพเดทฟรีตราบใดที่ผู้เขียนยังอัพเดทหนังสือ! ผู้เขียนหลายท่านใช้ Leanpub ในการเผยแพร่หนังสือระหว่างที่กำลังเขียน ผู้อ่านทุกคนจะได้รับการอัพเดทฟรี ไม่ว่าจะซื้อเมื่อไหร่หรือจ่ายเท่าไร (รวมถึงได้มาฟรี)
หนังสือ Leanpub ส่วนใหญ่มีให้อ่านในรูปแบบ PDF (สำหรับคอมพิวเตอร์) และ EPUB (สำหรับโทรศัพท์ แท็บเล็ต และ Kindle) รูปแบบที่มีให้บริการจะแสดงที่มุมบนขวาของหน้านี้
สุดท้ายนี้ หนังสือ Leanpub ไม่มีระบบป้องกันการคัดลอก DRM ที่ยุ่งยาก คุณจึงสามารถอ่านได้ง่ายๆ บนอุปกรณ์ที่รองรับทุกเครื่อง
เรียนรู้เพิ่มเติมเกี่ยวกับรูปแบบอีบุ๊กของ Leanpub และแหล่งที่สามารถอ่านได้