PHP随机插入字符串到内容里面的逗号句号后面

热度:4782020-11-25 20:55 收藏 0 点赞 0

随机插入字符串到指定内容后面,这个功能倒是简单,直接用替换字符串的方式就可以。或者先分割字符串,然后再拼接起来,也是可以的。

问题在于,现在要同时在几个字符串之后随机插入,这个就不容易实现了。

网上找资料的时候看到一个函数: preg_split 

可以根据正则分割内容,比如:preg_split('/(,|。|;|:)/',$body);

根据几个字符串分割内容,但是分割后就不能拼接了,从而不能使用这个函数。

我思来想去,发现其实转换一下就可以,根据字符串替换再转换就可以实现。代码如下,逐个说明:

1. 将要分割的字符串先替换成其他的字符串,并标记一下

$aa = str_replace([',','。',';',':','?'],['{S}{A}','{S}{B}','{S}{C}','{S}{D}','{S}{E}'],$body);

2. 分割掉标记{S},这样就把每个符号的位置分割开来了

$body = explode('{S}',$aa);

3. 插入字符串,这里我的是特殊字符串,请忽略

$ascii = ['','','','','','',''];
$randnum = rand(5,10);
for($i=1;$i<=$randnum;$i++){
	$numx = rand(2,6);
	$str = '';
	for($ii=1;$ii<=$numx;$ii++){
		$a = rand(0,6);
		$str.= $ascii[$a];
	}
	// 计算数组个数
	$n = count($body);
	// 随机位置,并去除最后一位
	$mm = rand(0,$n-1);
	// 这里$str就是你要插入的字符串
	$body[$mm].=$str;

	
}

4. 用空格拼接起来

$body = implode('',$body);

5. 再替换回原来的字符串,使之位置不变

$body = str_replace(['{A}','{B}','{C}','{D}','{E}'],[',','。',';',':','?'],$body);

这样就完美实现了随机插入。



暂无评论
登录后才可以评论~立即登录

如何获取资源?

您可以关注底部公众号,回复文章提示的 “ 关键词 ” 获取对应资源。

每日分享

每日分享收集的网络资源,其中包含开源项目、小工具、常用软件,以及音频视频、电子书籍等。

外卖天天领红包,饿了么,美团红包天天都有!

外卖天天领红包,饿了么,美团红...

最低每顿可省2元

分享两个远程工具-ToDesk和向日葵

分享两个远程工具-ToDesk和向日葵...

在工作生活中经常用到远程,QQ远程很卡,第三方远程工具就比较方便了。

爱奇艺万能播放器2018年完整版

爱奇艺万能播放器2018年完整版

2018年的爱奇艺万能播放器,功能齐全,没有广告!

分享500套个人求职简历模板

分享500套个人求职简历模板

500套免费求职简历下载!

一款最近很火的自动跳过广告APP,无root直装版

一款最近很火的自动跳过广告APP,...

自动跳过广告,无需root

WPS免费去广告电脑软件

WPS免费去广告电脑软件

wps广告实在太多了,下载一个去广告版本