我有一个字符串
%24p1_x=-5&%24p1_y=-285.06492367689526&%24p1_hei=0.617986639129584&%24
并希望将p1_x值更改为动态
动态计算 15.23
值
需要输出为:
%24p1_x=-15.23&%24p1_y=-85.06492367689526&%24p1_hei=0.617986639129584&%24"
我尝试使用“&”爆炸和preg_match匹配字符串。 任何人都可以帮助如何实现这一目标吗?
<?php
$a = '%24p1_x=-5&%24p1_y=-285.06492367689526&%24p1_hei=0.617986639129584&%24';
echo $a.'<br/><br/>';
$b = explode("&", $a);
foreach($b as $key => $val){
if(preg_match('/p1_x/', $val)){
echo 'Matched';
}
}
?>
答案 0 :(得分:1)
听起来像你只想要一个简单的preg_replace
:
$new_val = -15.23;
print preg_replace('/(p1_x).*?&/', '\1='.$new_val.'&', $a);
表达式/(p1_x).*?&/表示搜索从p1_x到&amp;的最小字符数。
替换中的\ 1等于搜索表达式括号中的第一部分。
答案 1 :(得分:1)
将p1_x
值替换为$n
,直到下一个&
preg_replace('/p1_x=[^&]*/', 'p1_x=' . $n, $a)