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.
// 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);
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
at $start
characters counting 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. For example, this displays the first 25 characters
of a message with an ellipsis after it as a link to a page that
displays more text:
$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.
Documentation on substr_replace( )
at
http://www.php.net/substr-replace.
Get PHP Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.