PHP替换特定字符串后的值

PHP替换特定字符串后的值,php,string,replace,str-replace,strpos,Php,String,Replace,Str Replace,Strpos,我有以下字符串:$path=“[other values]和dateStart>='2021-01-01'和dateEnd=');但它只返回“dateStart”之前的所有内容 有什么想法吗?$date='2021-01-01'; $date = '2021-01-01'; $replace = "2021-02-02"; $path = "[other values] and dateStart >= '2021-01-01' and dateEnd <

我有以下字符串:
$path=“[other values]和dateStart>='2021-01-01'和dateEnd=');
但它只返回“dateStart”之前的所有内容

有什么想法吗?

$date='2021-01-01';
$date = '2021-01-01';
$replace = "2021-02-02";
$path = "[other values] and dateStart >= '2021-01-01' and dateEnd <= '2021-12-31' and [other values ...]'";
$pos = strpos($path, $date);
$test = substr($path, 0, $pos);
$test = $test.$replace.substr($path, $pos + strlen($date));
$replace=“2021-02-02”; $path=“[other values]和dateStart>='2021-01-01'和dateEnd
$date='2021-01-01';
$replace=“2021-02-02”;

$path=“[other values]和dateStart>='2021-01-01'和dateEnd如果要替换dateStart,可以使用模式匹配类似日期的模式,并用新字符串替换匹配项

然后,您可以更新该模式以同时替换dateEnd

\bdateStart\h+>=\h+'\K\d{4}-\d{2}-\d{2}(?=')

$re='/\bdateStart\h+>=\h+\'\K\d{4}-\d{2}-\d{2}(?=\')/m';

$path=“[other values]和dateStart>='2021-01-01'和dateEnd如果要替换dateStart,可以使用模式匹配类似日期的模式,并用新字符串替换匹配项

然后,您可以更新该模式以同时替换dateEnd

\bdateStart\h+>=\h+'\K\d{4}-\d{2}-\d{2}(?=')

$re='/\bdateStart\h+>=\h+\'\K\d{4}-\d{2}-\d{2}(?=\')/m';

$path=“[其他值]和dateStart>='2021-01-01'和dateEnd如果用
2021-02-02
更改
dateStart
,是否有意义,因为结束日期会更小?
substr
返回由偏移量和长度参数指定的字符串部分。并且
strpos
将找到ne第一次出现的数字位置干草堆字符串中的edle。代码中没有替换的概念。@nice\u dev,没有,因为我需要更改多个值(如dateStart和dateEnd)但是一旦我有了一个工作方法,我就可以将它应用到所有需要更改的值上;我只是尽量让它对你们来说太简单;@ddl足够公平,正则表达式是一个很好的开始。如果你用
2021-02-02
更改
dateStart
,它会有意义吗,因为结束日期会更小?
substr
Returns由偏移量和长度参数指定的字符串部分。
strpos
将查找干草堆字符串中第一次出现的指针的数字位置。
2021-02-02
在代码中没有替换的概念。@nice\u dev,没有,因为我需要更改多个值(如dateStart和dateEnd)但是一旦我有了一个工作方法,我就可以将它应用到所有需要更改的值上;我只是尽量让它对你们来说太简单;)@ddl足够公平,正则表达式就是一个很好的开始。
[other values] and dateStart >= '2021-02-02' and dateEnd <= '2021-12-31' and [other values ...]