Menu

Showing posts with label string. Show all posts
Showing posts with label string. Show all posts

Tuesday, November 12, 2019

[PHP] วิธีการสร้าง Slug จากข้อความที่กำหนด
[PHP] How to Slugify a String

Slug เป็น Identifier ประเภทหนึ่งที่ใช้อ้างอิงถึงข้อมูลเช่นเดียวกับ id ใน database แตกต่างกันตรงที่ Slug เป็น identifier ที่คนสามารถอ่านเข้าใจ

โค้ดสำหรับสร้าง Slug จากข้อความที่กำหนดเป็นดังนี้
public static function slugify($str, $delimiter = '-')
{
    // Replace none alphanumeric with delimiter
    $str = preg_replace('/[^A-Za-z0-9]+/', $delimiter, $str);

    // Replace duplicated delimiter
    $str = preg_replace("/$delimiter+/", $delimiter, $str);

    // Trim delimiter
    $str = trim($str, $delimiter);

    // Convert to lower case
    $str = strtolower($str);

    return $str;
}

Monday, June 24, 2019

[Bash Script] วิธีการหาส่วนของข้อความที่อยู่ภายในไฟล์ข้อความ โดยใช้ Regular Expression
[Bash Script] How to Find Substring within Text File by Using Regular Expression

คุณสามารถใช้คำสั่ง grep ตามด้านล่างนี้
grep -o 'Regex pattern' filename
ตัวอย่างเช่น
grep -o 'main.[0-9a-z]*.js' public/index.html
ในกรณีนี้ index.html เป็นไฟล์ที่ถูกสร้างโดย AngularJS และมีชื่อไฟล์ main.{hash}.js อยู่ภายในไฟล์

เราไม่สามารถรู้ค่า hash ของชื่อไฟล์นี้ได้ แต่เรารู้รูปแบบข้อความของชื่อไฟล์นี้

ดังนั้นเราสามารถใช้ Regular Expression ในการหาชื่อไฟล์นี้จาก index.js ได้

Thursday, June 13, 2019

[Laravel - Carbon] ข้อควรระวัง: การใช้ Carbon::today()->toDateString() เพื่อเปรียบเทียบกับ Date String
[Laravel - Carbon] Warning: Using Carbon::today()->toDateString() for Comparing with Date String

Carbon เป็น PHP API extension สำหรับ DateTime

Carbon::today() เป็นฟังก์ชั่นที่ใช้สร้าง Carbon object ที่มีวันที่เป็นวันปัจจุบัน อย่างไรก็ตามในส่วนของเวลาจะเป็น 00:00:00 

จากภาพด้านล่างเป็นผลลัพธ์การเปรียบเทียบระหว่าง Carbon::today() กับวันที่ในรูปแบบข้อความ โดยใช้การเปรียบเทียบข้อความปกติ


ดังนั้นถ้าต้องการเปรียบเทียบเพียงวันที่เท่านั้น ให้เปลี่ยนไปใช้ Carbon::today()->toDateString() แทน

ผลลัพธ์การเปรียบเทียบจะเป็นดังภาพด้านล่าง

Tuesday, January 15, 2019

[Laravel - Model] การแปลง Query Builder ไปเป็น SQL Query String
[Laravel - Model] How to Convert Query Builder to SQL Query String

สาเหตุที่ต้องแปลง Query Builder ไปเป็น SQL Query String ก็มีหลายสาเหตุด้วยกัน เช่น การ debug query ที่เกิด error ขึ้น เป็นต้น ซึ่งสามารถใช้โค้ดได้ตามด้านล่างนี้
$sql= str_replace(array('?'), array('\'%s\''), $query->toSql());
$sql = vsprintf($sql, $query->getBindings());
เมื่อ $query คือ Query Builder และ $sql คือ Query String ที่ได้จากการแปลง