php如何替换字符串指定第一处字符

$a = "asdf123hjklqwet123yytu"
如何把第一个或第二个123替换成456得出
$a = "asdf 456 hjklqwet 123 yytu" 或$a = "asdf 123 hjklqwet 456 yytu";

需要准备的材料分别是:电脑、php编辑器、浏览器。

1、首先,打开php编辑器,新建php文件,例如:index.php。

2、在index.php中,输入代码:

$a = "asdf123hjklqwet123yytu";$b=2;

echo str_replace('123', '456', $a, $b);

3、浏览器运行index.php页面,此时会发现字符串的第2处123被替换为了456。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-04
$a = "asdf123hjklqwet123yytu";
$b = preg_replace('/123/', ' 456 ', $a);
echo $b;

追问

我只想问你们回答问题前有认真看完题目和不长问题吗?

第2个回答  推荐于2017-11-27
第一种情况 简单

$a = "asdf123hjklqwet123yytu";
$a = preg_replace('/123/', '456', $a, 1); //只替换一次

第二种情况 我想了个笨方法
$a = "asdf123hjklqwet123yytu";

$arr = explode('123', $a); //用123拆分成数组
$a = implode('456', $arr); //再用456变成字符串"asdf456hjklqwet456yytu"
//或者直接用preg_replace('/123/', '456', $a)也行

$a = preg_replace('/456/', '123', $a, 1);//再用第一种情况的方法把第一个456换成123

总之就是利用preg_replace可以指定参数1 暂时没想到更好的办法追问

我自己写了个  感觉超麻烦 ^∨^,现在用可以不知道以后会不会有问题

本回答被提问者采纳
第3个回答  2020-10-20
一般你这种需求都是如文章某段落中插入内容, 自己参考自己写成函数吧..

//以下代码在文章第二段落插入广告代码
$str = '<p>第一段落</p><p>第二段落</P><p>第三段落</P><p>第四段落</p>';

// 使用 preg_split 进行分割, 我们要第二行插入就分三次就行
// explode 不支持大小写所以不建议使用
$ad_str = preg_split("/<\/p>/i", $str, 3);

// 判断如果分割的数组中没有到3个成员就不替换了原文显示
if (empty($ad_str[2])) {
echo $str;
} else {
//拼接你要替换的内容
echo $ad_str[0], '</p>', $ad_str[1], '</p>广告代码', $ad_str[2];
}