Skip to content

emka.web.id

Menu
  • Home
  • Indeks Artikel
  • Tutorial
  • Tentang Kami
Menu

PHP Cookbook: Replacing Substrings

Posted on December 15, 2011 by Syauqi Wiryahasana
Problem You want to replace a substring with a different string. For example, you want to obscure all but the last four digits of a credit card number before printing it. Solution Use substr_replace(), as in Example 1-15. Example 1-15. Replacing a substring with substr_replace( ) [sourcecode language="php"] // Everything from position $start to the end of $old_string // becomes $new_substring $new_string = substr_replace($old_string,$new_substring,$start); // $length characters, starting at position $start, become $new_substring $new_string = substr_replace($old_string,$new_substring,$start,$length); [/sourcecode] Discussion Without the $length argument, substr_replace( ) replaces everything from $start to the end of the string. If $length is specified, only that many characters are replaced: [sourcecode language="php"] print substr_replace('My pet is a blue dog.','fish.',12); print substr_replace('My pet is a blue dog.','green',12,4); $credit_card = '4111 1111 1111 1111'; print substr_replace($credit_card,'xxxx ',0,strlen($credit_card)-4); [/sourcecode] [sourcecode] My pet is a fish. My pet is a green dog. xxxx 1111 [/sourcecode] If $start is negative, the new substring is placed at $start characters counting from the end of $old_string, not from the beginning: [sourcecode language="php"] print substr_replace('My pet is a blue dog.','fish.',-9); print substr_replace('My pet is a blue dog.','green',-9,4); [/sourcecode] [sourcecode] My pet is a fish. My pet is a green dog. [/sourcecode] If $start and $length are 0, the new substring is inserted at the start of $old_string: print substr_replace('My pet is a blue dog.','Title: ',0,0); Title: My pet is a blue dog. The function substr_replace( ) is useful when you’ve got text that’s too big to display all at once, and you want to display some of the text with a link to the rest. Example 1-16 displays the first 25 characters of a message with an ellipsis after it as a link to a page that displays more text. Example 1-16. Displaying long text with an ellipsis [sourcecode language="php"] $r = mysql_query("SELECT id,message FROM messages WHERE id = $id") or die(); $ob = mysql_fetch_object($r); printf('<a href="more-text.php?id=%d">%s</a>', $ob->id, substr_replace($ob->message,' ...',25)); [/sourcecode] The more-text.php page referenced in Example 1-16 can use the message ID passed in the query string to retrieve the full message and display it. See Also Documentation on substr_replace( ) at http://www.php.net/substr-replace.
Seedbacklink

Recent Posts

TENTANG EMKA.WEB>ID

EMKA.WEB.ID adalah blog seputar teknologi informasi, edukasi dan ke-NU-an yang hadir sejak tahun 2011. Kontak: kontak@emka.web.id.

©2024 emka.web.id Proudly powered by wpStatically