找到字符串之间的部分并更改它

时间:2013-11-01 20:14:07

标签: php

我知道如何找到(部分)字符串并更改它,但问题是,我必须更改的部分的长度和字符都是可变的。

例如

$string = "bla1bla2bla3textbla4bla5";

normaly我应该爆炸来过滤掉文本,但因为“bla3”与“bla4”不同,我不知道如何爆炸或找到“文本”,但它总是在“bla3”和“bla4”之间,但是“text”与bla1,2和5一样可变。 在找到“文本”之后,我需要用其他文本替换它。

也许我可以在google上找到这个,但问题是,我不知道如何描述它。

3 个答案:

答案 0 :(得分:0)

使用explode

$parts = explode('text',$string); //splits it into two parts, removing `text`
$string = $parts[0] .'replacement'. $parts[1]; //glue the parts together with replacement

使用str_replace

$string = str_replace('text','replacement');

至于描述你的问题:我会尝试用谷歌搜索php replace substring

答案 1 :(得分:0)

您可以使用preg_split()。我不记得确切的正则表达式,但它应该是这样的:

$text = preg_split("/[0-9]*/", "bla1bla2bla3textbla4bla5");

答案 2 :(得分:0)

好的,一些例子。

$string1 = "bla1bla2bla3textbla4bla5";

在$ string中找到“text”并将其替换为“example”

输出:

$string1 = "bla1bla2bla3examplebla4bla5";

其他例子

$string2 = "I bla3don'tbla4 know how to do it"

在$ string中找到“不要”并将其替换为“example”

输出:

$string2 = "I bla3examplebla4 know how to do it"

其他例子

$string3 = "textbla3textbla4text"

找到“text”但只找到bla3和bla4之间的那个,并用“example”替换它

输出应该像

$string3 = "textbla3examplebla4text"

希望这更清楚。 所以bla3和bla 4的部分保持不变,但其他任何事情都可以改变。