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 ...]