跳到主要内容

เนื้อหาภาษาไทย / 泰语内容

系统指南 内容已审核

การจัดการ String: strlen, strpos, substr

บทความนี้ได้แนะนำฟังก์ชันพื้นฐานในการจัดการ String ใน PHP ได้แก่ `strlen()`, `strpos()`, และ `substr()` โดยอธิบายถึงไวยากรณ์, การใช้งาน, และข้อควรระวังของแต่ละฟ...

การจัดการ String: strlen, strpos, substr

ในบทเรียนนี้ เราจะมาเรียนรู้เกี่ยวกับการจัดการ String ใน PHP ซึ่งเป็นทักษะที่สำคัญสำหรับการทำงานกับข้อมูลที่เป็นข้อความ เราจะเน้นไปที่ฟังก์ชันพื้นฐาน 3 ตัว ได้แก่ strlen(), strpos(), และ substr() ซึ่งช่วยให้เราสามารถหาความยาวของ String, ค้นหาตำแหน่งของ String, และตัด String ได้อย่างง่ายดาย

ความรู้พื้นฐานเกี่ยวกับ String ใน PHP

ใน PHP String คือลำดับของตัวอักษร (characters) ที่เรียงต่อกัน เราสามารถกำหนด String ได้โดยใช้เครื่องหมาย Single quote (') หรือ Double quote ("). ความแตกต่างหลักๆ คือ Double quote สามารถ parse ตัวแปรภายใน String ได้ ในขณะที่ Single quote จะถือว่าเป็น String literal ทั้งหมด

$string1 = 'Hello, world!';
$string2 = "The answer is $answer."; // $answer จะถูกแทนที่ด้วยค่าของตัวแปร

การหาความยาวของ String ด้วย strlen()

ฟังก์ชัน strlen() ใช้สำหรับหาความยาวของ String (จำนวนตัวอักษร) ซึ่งเป็นฟังก์ชันที่ใช้งานบ่อยมาก

ไวยากรณ์

int strlen ( string $string )

ตัวอย่าง

$text = "PHP is fun!";
$length = strlen($text);

echo "The length of the string is: " . $length; // Output: The length of the string is: 11

ในตัวอย่างนี้ strlen($text) จะคืนค่า 11 ซึ่งเป็นความยาวของ String "PHP is fun!". ช่องว่าง (space) ก็ถูกนับเป็นตัวอักษรด้วย

การค้นหาตำแหน่งของ String ด้วย strpos()

ฟังก์ชัน strpos() ใช้สำหรับค้นหาตำแหน่งแรกของ String ที่กำหนด (substring) ภายใน String หลัก

ไวยากรณ์

int|false strpos ( string $haystack , string $needle , int $offset = 0 )
  • $haystack: String หลักที่ต้องการค้นหา
  • $needle: String ที่ต้องการค้นหา (substring)
  • $offset: (Optional) ตำแหน่งเริ่มต้นในการค้นหา (default คือ 0)

สิ่งที่ต้องระวัง

strpos() จะคืนค่าเป็นตำแหน่ง (index) ของ String ที่ค้นพบ โดย index เริ่มต้นที่ 0 หากไม่พบ String ที่ต้องการ จะคืนค่า false ซึ่งเป็นสิ่งที่สำคัญมากในการตรวจสอบผลลัพธ์ เพราะ 0 ถือว่าเป็นค่า false ใน PHP ดังนั้นจึงต้องใช้ === (identical comparison) ในการตรวจสอบ

ตัวอย่าง

$string = "Hello world, hello PHP!";
$find = "hello";

$position = strpos($string, $find);

if ($position === false) {
    echo "The string '$find' was not found.";
} else {
    echo "The string '$find' was found at position: " . $position; // Output: The string 'hello' was found at position: 13
}

// ค้นหาโดยเริ่มจากตำแหน่งที่ 20
$position2 = strpos($string, $find, 20);

if ($position2 === false) {
    echo "<br>The string '$find' was not found after position 20."; // Output: The string 'hello' was not found after position 20.
} else {
    echo "<br>The string '$find' was found at position: " . $position2;
}

ในตัวอย่างแรก strpos($string, $find) คืนค่า 13 เพราะ "hello" ปรากฏครั้งแรกที่ตำแหน่ง 13 ใน String หลัก

ในตัวอย่างที่สอง strpos($string, $find, 20) เริ่มค้นหาจากตำแหน่ง 20 ซึ่งทำให้ไม่พบ "hello" อีก (เพราะ "hello" ตัวแรกอยู่ก่อนตำแหน่ง 20) จึงคืนค่า false

การตัด String ด้วย substr()

ฟังก์ชัน substr() ใช้สำหรับตัด String ออกมาเป็นส่วนย่อย (substring) ตามตำแหน่งเริ่มต้นและความยาวที่กำหนด

ไวยากรณ์

string substr ( string $string , int $start , ?int $length = null )
  • $string: String หลักที่ต้องการตัด
  • $start: ตำแหน่งเริ่มต้นในการตัด (index)
  • $length: (Optional) ความยาวของ String ที่ต้องการตัด ถ้าไม่ระบุ จะตัดจนถึงจุดสิ้นสุดของ String

ตัวอย่าง

$text = "This is a sample string.";

// ตัดจากตำแหน่งที่ 5 จนถึงสิ้นสุด String
$substring1 = substr($text, 5);
echo "Substring 1: " . $substring1 . "<br>"; // Output: Substring 1: is a sample string.

// ตัดจากตำแหน่งที่ 0 เป็นจำนวน 4 ตัวอักษร
$substring2 = substr($text, 0, 4);
echo "Substring 2: " . $substring2 . "<br>"; // Output: Substring 2: This

// ตัดจากตำแหน่งที่ -7 (นับจากท้าย String) จนถึงสิ้นสุด String
$substring3 = substr($text, -7);
echo "Substring 3: " . $substring3 . "<br>"; // Output: Substring 3: string.

// ตัดจากตำแหน่งที่ -13 (นับจากท้าย String) เป็นจำนวน 5 ตัวอักษร
$substring4 = substr($text, -13, 5);
echo "Substring 4: " . $substring4 . "<br>"; // Output: Substring 4: sample

ในตัวอย่างเหล่านี้ เราได้เห็นวิธีการใช้ substr() เพื่อตัด String ในรูปแบบต่างๆ ทั้งการตัดจากตำแหน่งเริ่มต้นจนถึงสิ้นสุด การตัดด้วยความยาวที่กำหนด และการตัดโดยใช้ตำแหน่งที่เป็นค่าลบ (นับจากท้าย String)

ตัวอย่างการประยุกต์ใช้ร่วมกัน

เราสามารถนำฟังก์ชันเหล่านี้มาประยุกต์ใช้ร่วมกันเพื่อจัดการ String ได้อย่างมีประสิทธิภาพ

ตัวอย่าง: การตัดคำแรกออกจาก String

$sentence = "The quick brown fox jumps over the lazy dog.";

// หาตำแหน่งของช่องว่างแรก
$spacePosition = strpos($sentence, " ");

// ถ้ามีช่องว่าง
if ($spacePosition !== false) {
    // ตัดคำแรกออกมา
    $firstWord = substr($sentence, 0, $spacePosition);

    echo "First word: " . $firstWord . "<br>"; // Output: First word: The

    // ตัดส่วนที่เหลือของ sentence (ไม่รวมคำแรกและช่องว่าง)
    $remainingSentence = substr($sentence, $spacePosition + 1);

    echo "Remaining sentence: " . $remainingSentence . "<br>"; // Output: Remaining sentence: quick brown fox jumps over the lazy dog.
} else {
    echo "No space found in the sentence.";
}

ในตัวอย่างนี้ เราใช้ strpos() เพื่อหาตำแหน่งของช่องว่างแรก จากนั้นใช้ substr() เพื่อตัดคำแรกและส่วนที่เหลือของ Sentence ออกจากกัน

สรุป

ในบทเรียนนี้ เราได้เรียนรู้เกี่ยวกับฟังก์ชันพื้นฐานในการจัดการ String ใน PHP ได้แก่ strlen(), strpos(), และ substr() ซึ่งเป็นเครื่องมือที่มีประโยชน์ในการทำงานกับข้อมูลที่เป็นข้อความ การเข้าใจและใช้งานฟังก์ชันเหล่านี้ได้อย่างคล่องแคล่ว จะช่วยให้คุณสามารถจัดการ String ได้อย่างมีประสิทธิภาพมากยิ่งขึ้น

ในบทเรียนถัดไป เราจะเรียนรู้เกี่ยวกับฟังก์ชันอื่นๆ ที่ใช้ในการจัดการ String เช่น str_replace(), strtoupper(), และ strtolower() ซึ่งจะช่วยให้คุณสามารถแก้ไขและปรับปรุง String ได้อย่างหลากหลาย

Office.in.th Custom Service

想基于此结构开发或定制系统?

Office.in.th 承接企业级 Web Application、API Integration 以及政府/企业管理系统的设计与开发,并提供长期支持。

查看软件开发服务