PHP字符串替换函数substr_replace()详解

zxh5566  2016-09-04 09:23   Hits: 

用一个新的字符串替换某个字符串中的一部分,可以使用substr_replace()函数

//从位置$start到$old_string末尾部分
//替换为$new_substring

$new_string = substr_replace($old_string,$new_substring,$start);

//从位置$start开始的$length个字符替换为$new_substring

$new_string = substr_replace($old_string,$new_substring,$start,$length);

如果没有$length参数,substr_replace()将替换从$start到字符末尾的所有字符。如果指定了$length,只会替换指定数目的字符

echo substr_replace('my pet is a blue dog','fish',12); //my pet is a fish
echo substr_replace('my pet is a blue dog','green',12,4); //my pet is a green dog
$credit_card = '4111 1111 1111 1111';
echo substr_replace($credit_cart,'xxxx ',0,strlen($credit_card)-4); //xxxx 1111;

如果$start为负数,会从$old_string末尾倒数$start个字符来放置新子串,而不是从字符串开始位置作为起点

echo substr_replace('my pet is a bule dog.','fish',-9);//my pet is a fish.
echo substr_replace('my pet is a bule dog.','green',-9,4);//my pet is a green dog.

如果$start和$length为0,新子串将插入到$old_string的开始位置

echo substr_replace('my pet is a blue dog.','Title: ',0,0);//Title: my pet is a blue dog.

如果文本过大,无法一次全部显示,可以希望显示一部分文本,另外还有一个链接指向其余的文本,在这种情况下,函数substr_replace()就很有用,例如显示了一个消息的前25个字符,后面有一个省

略号作为链接,可以链接到一个显示更多文本的页面

$r = mysql_query("select id , message from messages where id = $id");
$ob = mysql_fetch_object($r);
echo '<a href="more-text.php?id=.'$ob->id'.">'.substr_replace($ob->message,'...',25).'</a>';

上一篇:PHP中的strpos() 与 字符串截取substr()详解
下一篇:jquery文本框获取和失去焦点改变样式