PHP Ionic Angular Phonegap AJAX Javascript CSS MySQL jQuery Forum


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

26 March 2010 By
ข้อความ php ตัดข้อความ

คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ ข้อความ php ตัดข้อความ



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






อย่าลืมกด Like กด Share เป็นกำลังใจ ในการสร้างบทความใหม่ๆ น่ะครับ


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