PHP Strings Replacing Substrings - Web Development and Design | Tutorial for Java, PHP, HTML, Javascript PHP Strings Replacing Substrings - Web Development and Design | Tutorial for Java, PHP, HTML, Javascript

Breaking

Post Top Ad

Post Top Ad

Tuesday, May 7, 2019

PHP Strings Replacing Substrings

PHP Strings




Replacing Substrings


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

Example  Replacing a substring with substr_replace( )

          // 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);


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:

           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);

           My pet is a fish.
           My pet is a green dog.
           xxxx 1111

If $start is negative, the new substring is placed by counting $start characters from
the end of $old_string, not from the beginning:

           print substr_replace('My pet is a blue dog.','fish.',-9);
           print substr_replace('My pet is a blue dog.','green',-9,4); 
   
           My pet is a fish.
           My pet is a green dog.

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
displays the first 25 characters of a message with an ellipsis after it as a link to a page
that displays more text.

Example  Displaying long text with an ellipsis

           $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));

The more-text.php page  can use the message ID passed in the query string to retrieve the full message and display it.

No comments:

Post a Comment

Post Top Ad