PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

ความแตกต่าง ระหว่าง ฟังก์ชัน strstr กับ strrchr และ การประยุกต์ ใช้งาน

26 March 2010 By


strrchr (strrchr มี r ทั้งหมด 3 ตัว ต่างจาก strchr มี r 2 ตัว) ใช้สำหรับค้นหาตัวอักษร หรือ อักขระ ตัวสุดท้ายในข้อความ และคืนค่าเป็นข้อความ นับตั้งแต่ ตัวอักษร หรือ อักขระ ที่ค้นเจอ ไปจนสิ้นสุดข้อความ

ตัวอักษรตัวสุดท้ายในข้อความ คือ
สมมติ $data1="data.ninenik.jpg";
หากใช้คำสั่ง strrchr ค้นหา . (จุด) ในตัวแปร $data1  ค่า .(จุด) ทีได้ จะเป็นตัวสุดท้ายในตัวแปร $data1

รูปแบบการใช้งาน
string strrchr ( string $haystack , mixed $needle )

พารามิเตอร์
haystack คือ ข้อความทั้งหมด สำหรับการค้นหา


needle คือ ตัวอักษร หรือ อักขระ ที่ต้องการค้นหา หากกำหนดมากกว่า 1 ตีวอักษร ฟังก์ชัน จะดูเฉพาะตัวอักษร
ตัวแรกเท่านั้น ซึ่งแตกต่างจาก ฟังก์ชัน strstr ที่จะพิจารณาทั้งสองตัวอักษร
โดย needle หรือ  ตัวอักษร หรือ อักขระ ที่ต้องการค้นหา สามารถกำหนดเป็นตัวเลข แทนรหัส ascii ของตัวอักษร
เพื่อใช้สำหรับการค้นหาได้

การคืนค่า
ฟังก์ชันจะคืนค่า ส่วนของข้อความ และค่นค่าเป็น false ถ้าค้นหาไม่พบ

ตัวอย่าง
 

<?php
$name_file="aaa.data.ninenik.jpg";
echo strrchr($name_file,".");
// ค่าที่ได้คือ .jpg

$path_file="/data/product/ninenik.jpg";
echo strrchr($path_file,"/");
// ค่าที่ได้คือ /ninenik.jpg

// แต่หากต้องการ ค่าที่ได้ โดยไม่รวม ตัวอักษร หรือตัวที่่ค้นหา สามารถใช้ร่วมกับ substr ได้ดังนี้
$path_file="/data/product/ninenik.jpg";
echo substr(strrchr($path_file,"/"),1);
// ค่าที่ได้คือ ninenik.jpg
?>

หมายเหตู ฟังก์ชัน strrchr สามารถกำหนด ตัวอักษร หรือ อักขระที่ต้องการหา ได้เพียงตัวเดียวเท่านั้น หากกำหนด
มากกว่าหนึ่งค่า จะนับเฉพาะตัวแรกเท่านั้น



strstr ใช้สำหรับค้นหาตัวอักษร คำ หรือข้อความ ตัวแรกจากข้อความทั้งหมด หากพบค่าดังกล่าว ก็จะทำการคืนค่า
ข้อความนับจากค่าที่ค้นหาเจอ ไปจนสิ้นสุดข้อความทั้งหมด

ตัวแรกของข้อความ คือ
สมมติ $data1="data.ninenik.jpg";
หากใช้คำสั่ง strstr ค้นหา . (จุด) ในตัวแปร $data1  ค่า .(จุด) ทีได้ จะเป็นตัวแรกในตัวแปร $data1

รูปแบบการใช้งาน
string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )
 
หมายเหตุ: ฟังก์ชันนี้เป็นลักษณะ case-sensitive กรณีค้นหาแบบ case-insensitive ให้ใช้ stristr() แทน
                   หากต้องการแค่ตรวจสอบว่ามี หรือไม่มี คำที่ค้นหาหรือไม่ ให้ใช้ strpos() แทน ซึ่งจะทำงานได้เร็ว และใช้หน่วยความจำ memory น้อยกว่า

พารามิเตอร์
haystack คือ ข้อความทั้งหมด สำหรับการค้นหา
 
needle คือ ตัวอักษร หรือ อักขระ ที่ต้องการค้นหา หากกำหนดมากกว่า 1 ตีวอักษร ฟังก์ชัน จะดูเฉพาะตัวอักษร
ตัวแรกเท่านั้น ซึ่งแตกต่างจาก ฟังก์ชัน strstr ที่จะพิจารณาทั้งสองตัวอักษร
โดย needle หรือ  ตัวอักษร หรือ อักขระ ที่ต้องการค้นหา สามารถกำหนดเป็นตัวเลข แทนรหัส ascii ของตัวอักษร
เพื่อใช้สำหรับการค้นหาได้

before_needle  // มีตั้งแต่เวอร์ชั่น  PHP 5.3.0 และเหนือกว่า
หากกำหนดเป็น TRUE, strstr() จะคืนค่าข้อความก่อน ตัวอักษร หรือค่าค่าที่ค้นหา

การคืนค่า
ฟังก์ชันจะคืนค่า ส่วนของข้อความ และค่นค่าเป็น false ถ้าค้นหาไม่พบ

ตัวอย่าง

<?php
$email  = 'name@ninenik.com';
$domain = strstr($email, '@');
echo $domain; // แสดง @ninenik.com

$user = strstr($email, '@', true); // มีตั้งแต่เวอร์ชั่น  PHP 5.3.0 และเหนือกว่า
echo $user; // แสดง name
?> 

 


Tags:: php ตัดข้อความ ข้อความ





URL สำหรับอ้างอิง