เชียงรายโฟกัสดอทคอม สังคมออนไลน์ของคนเชียงราย ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน
วันที่ 26 เมษายน 2024, 22:53:38
หน้าแรก ช่วยเหลือ เข้าสู่ระบบ สมัครสมาชิก



  • ข้อมูลหลักเว็บไซต์
  • เชียงรายวันนี้
  • ท่องเที่ยว-โพสรูป
  • ตลาดซื้อขายสินค้า
  • ธุรกิจบริการ
  • บอร์ดกลุ่มชมรม
  • อัพเดทกระทู้ล่าสุด
  • อื่นๆ

ประกาศ !! กรุณาอ่านเพื่อทำความเข้าใจ : https://forums.chiangraifocus.com/index.php?topic=1025412.0

+  เว็บบอร์ด เชียงรายโฟกัสดอทคอม สังคมออนไลน์ของคนเชียงราย
|-+  ศูนย์กลางข้อมูลเชียงราย
| |-+  คุยเรื่องไอที - เทคโนโลยี (ผู้ดูแล: K€nGja1, chiohoh, nuifish, NOtis)
| | |-+  [มุมโปรแกรมเมอร์] PHP กับการแทนที่ข้อความ มาดูกันว่ามีฟังก์ชั่นอะไรให้ใช้บ้าง
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
« หน้าที่แล้ว ต่อไป »
หน้า: [1] พิมพ์
ผู้เขียน [มุมโปรแกรมเมอร์] PHP กับการแทนที่ข้อความ มาดูกันว่ามีฟังก์ชั่นอะไรให้ใช้บ้าง  (อ่าน 763 ครั้ง)
{Cyberman}
To Be Developer
มัธยม
**
ออฟไลน์ ออฟไลน์

กระทู้: 504


โปรแกรมเมอร์เชียงราย


« เมื่อ: วันที่ 06 พฤษภาคม 2018, 11:25:11 »

PHP Replace Function

1. str_replace()
Replace all occurrences of the search string with the replacement string


2. substr_replace()
Replace text within a portion of a string


3. strtr()
Translate characters or replace substrings


4. preg_replace()
Perform a regular expression search and replace



แต่ละฟังก์ชั่นแตกต่างกันอย่างไร

เริ่มจาก =>


1. str_replace()

 เรามักจะคุ้นเคยกับการใช้เพื่อแทนที่คำบางคำให้เป็นคำอื่น เช่น

โค๊ด:
echo str_replace("ผศ.ดร.", "", "ผศ.ดร.สมบูรณ์  ใจดี");

ก็จะได้ผลลัพธ์ที่แทนที่ ผศ.ดร. เป็นค่าว่าง = สมบูรณ์  ใจดี





หรือ ใช้ตัดเครื่องหมายคอมม่าในตัวเลขออกไป

โค๊ด:
echo str_replace(",", "", "1,234,654.00");

ก็จะได้แต่ตัวเลข 1234654.00 เพื่อเอาไปบันทึกในฐานข้อมูล



นอกจากนี้ยังสามารถนำไปใช้แทนที่คำหยาบได้ด้วย ยกตัวอย่าง
โค๊ด:
$rough = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");

$content = str_replace($rough, "*", "Hello World of PHP");

echo $content;

ข้อความในตัวแปรอาร์เรย์ $rough จะแทนที่ด้วยเครื่องหมาย *   
H*ll* W*rld *f PHP



---------------------------

ในส่วนของการแทนที่หลายคำด้วย Array นั้นแนะนำให้ใช้ strtr() จะอ่านง่ายกว่า

โค๊ด:
        $phrase  = "You should eat fruits, vegetables, and fiber every day.";

        $healthy = array("fruits", "vegetables", "fiber");

        $yummy   = array("pizza", "beer", "ice cream");
---------------------------





2. substr_replace()

ฟังก์ชั่นนี้ยังไม่เคยใช้งาน เพราะนึกไม่ออกว่าจะใช้ในกรณีไหน และการนำไปใช้เราต้องรู้ตำแหน่งที่ต้องการแทนที่อยู่แล้วด้วย ซึ่งอาจจะต้องใช้ฟังก์ชั่นค้นหาคำเพิ่มเติม



โค๊ด:
substr_replace ( ข้อความ, คำที่ใช้แทนที่,  ระบุตำแหน่งเริ่มต้น [, ระบุความยาวที่จะแทนที่] )


เท่าที่พอจะคิดออกก็คือ เอามาเติมเต็มฟังก์ชั่น substr() เพราะว่าชื่อก็บ่งบอกอยู่แล้ว แต่จะใช้ตอนไหน ก็คือ substr() จะใช้ตัดข้อความแบบระบบตำแหน่ง เช่น   AABBCC  เราสามารถตัดเฉพาะ AA โดยระบุตำแหน่งได้ หรือ ตัด CC แบบระบุตำแหน่งย้อนหลัง -2 หรือจะตัดแค่ตรงกลาง BB ก็ได้



แต่ที่ทำไม่ได้คือ ถ้าต้องการ 2 สองส่วน คือ   AACC  เราจะตัดด้วย substr() ถึง 2 ครั้งด้วยกัน แต่ถ้าใช้ substr_replace() จะใช้แค่ครั้งเดียว ก็ประหยัดเวลาไปได้



---------------------------

กรณีที่ AABBCC  เรารู้อยู่แล้ว่า ค่าตรงกลางคือ BB ไม่เปลี่ยนแปลง

เราจะใช้ str_replace('BB', '', 'AABBCC') ไปเลยก็ได้ แต่!!! ถ้าตำแหน่งที่ 3-4 เป็นข้อความที่เปลี่ยนแปลงไม่ซ้ำกัน แต่มีตำแหน่งที่แน่นอน การใช้ substr_replace() จึงเป็นวิธีที่สะดวกที่สุด

---------------------------





3. strtr()



เหมือนกับใช้แปลงคำ หรือแปลความหมายก็ได้
โค๊ด:
strtr ( ข้อความต้นฉบับ ,  คำค้นหา ,  คำแทนที่ )



หรือจะใช้แทนที่แบบอาร์เรย์ก็ได้



 strtr ( ข้อความต้นฉบับ ,  อาร์เรย์สำหรับแทนที่ )



ตัวอย่างการใช้งาน



โค๊ด:
<?php

$trans 
= array("Hello" => "สวัสดี"'Everybody' => 'ทุกคน');

echo 
strtr("Hello Everybody"$trans);

?>



ผลลัพธ์ที่ได้

สวัสดี ทุกคน





4. preg_replace()



โค๊ด:
preg_replace ( รูปแบบการค้นหา ,  คำแทนที่ , ข้อความ )


จะเป็นการแทนที่แบบกำหนดรูปแบบได้ ซึ่งจะต้องศึกษา Regular Expressions เพิ่มเติม



ตัวอย่างการใช้แทนที่ URL ให้กลายเป็นลิงค์คลิกได้


โค๊ด:
<?php



$pattern 
"/(?i)\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'\".,<>?«»“”‘’]))/";



$inp "Harry you're a http://google.com wizard!";

$text preg_replace($pattern"<a href='$1'>$1</a>"$inp);



echo 
$text;

?>





อ้างอิง

PHP preg_replace - www or http://

https://stackoverflow.com/questions/6165552/php-preg-replace-www-or-http

IP : บันทึกการเข้า

หน้า: [1] พิมพ์ 
« หน้าที่แล้ว ต่อไป »
กระโดดไป:  


เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

 
เรื่องที่น่าสนใจ
 

ข้อความที่ท่านได้อ่านบนกระดานข่าวแห่งนี้ เกิดขึ้นจากการเขียนโดยสาธารณชน และตีพิมพ์แบบอัตโนมัติ ผู้ดูแลเว็บไซต์แห่งนี้ไม่จำเป็นต้องเห็นด้วย
และไม่รับผิดชอบต่อข้อความใดๆ ผู้อ่านจึงต้องใช้วิจารณญาณในการกลั่นกรองด้วยตัวเอง และถ้าท่านพบเห็นข้อความใดๆ ที่ขัดต่อกฎหมาย และศีลธรรม พาดพิง ละเมิดสิทธิบุคคอื่น ต้องการแจ้งลบ
กรุณาส่งลิงค์มาที่
เพื่อทีมงานจะได้ดำเนินการลบออกให้ทันที..."

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
www.chiangraifocus.com

Valid XHTML 1.0! Valid CSS!