【发布时间】:2015-09-12 05:55:33
【问题描述】:
我有一个字符串如下:
$var = "Hello Hi World it is an awesome day. Test Hi guys Whats up";
我正在尝试按如下方式替换字符串中的值:
function get_string_between($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
$parsed0 = get_string_between($var, "Hello", "World");
So I get the String in `$parse0`
我正在替换如下:
$varnew = str_replace($parsed0,"NEWVALUE", $var);
echo $varnew;
我得到如下输出:
Hello NEWVALUE World it is an awesome day. Test NEWVALUE guys Whats up
我的预期结果是:
Hello NEWVALUE World it is an awesome day. Test Hi guys Whats up.
发生这种情况是因为在$parse0 中我得到Hi 的结果,并且它在该字符串中包含两次。
有什么方法可以让我使用函数获取开始和结束位置并使用它们替换它?
【问题讨论】:
-
@Justcode 在我的情况下我需要可能有非常大的字符串可能包含更多重复。我知道第一个字符串和结束字符串,需要放在两者之间。请指导我!
-
@Justcode 它正在替换第一次或第二次出现,依此类推。在我的情况下,我需要替换两个字符串之间的值。希望你现在得到它!
-
这个先前回答的链接可能会有所帮助-stackoverflow.com/a/9598725/5315670
标签: php