Php 我需要用preg_replace替换动态字符串中的特定值

Php 我需要用preg_replace替换动态字符串中的特定值,php,regex,Php,Regex,我有html字符串,例如 $string1 = '<a href="././"><img src="./images/userid=22&u_size=150"/></a>'; $string2 = '<a href="././"><img src="./images/userid=15&u_size=120"/></a>'; $

我有html字符串,例如

$string1 = '<a href="././"><img src="./images/userid=22&u_size=150"/></a>';
$string2 = '<a href="././"><img src="./images/userid=15&u_size=120"/></a>';
$string3 = '<a href="././"><img src="./images/userid=17&u_size=80"/></a>';
$string1='';
$string2='';
$string3='';
如果您注意到u\u大小在每个字符串中都不同。所以我需要一个preg_替换代码来更改它们,例如150

所以,期望的输出是

$string1 = '<a href="././"><img src="./images/userid=22&u_size=150"/></a>';
$string2 = '<a href="././"><img src="./images/userid=15&u_size=150"/></a>';
$string3 = '<a href="././"><img src="./images/userid=17&u_size=150"/></a>';
$string1='';
$string2='';
$string3='';

您可以尝试以下方法:

$parts = explode('u_size', $string1);
if (isset($parts[0])) {
    $string1 = $parts[0] . 'u_size=150"/></a>';
} 
$parts=explode('u_size',$string1);
如果(isset($parts[0])){
$string1=$parts[0]。“u_尺寸=150”/>”;
} 
为此使用正则表达式

这将找到
u\u size
,后跟
=
,后跟至少一个数字

然后它被灵活地替换。
$1
是第一个找到的术语
u\u size

$2
就是这个尺寸,所以是150、120、80。但这里不使用这个

$string1='';
$string2='';
$string3='';
$string1=preg_replace('/(u_size)=(\d+/“,$1=150',$string1);
$string2=preg_replace('/(u_size)=(\d+/“,$1=150',$string2);
$string3=preg_replace('/(u_size)=(\d+/“,$1=150',$string3);
echo$string1,PHP_EOL;
echo$string2,PHP_EOL;
echo$string3,PHP_EOL;

使用这个正则表达式
preg\u replace('/u\u size=\d+/','u\u size=150',$string);
应该这样做

$regex = '/(u_size)=(\d+)/';
preg_replace($regex, '$1=150', $string);
使用
substr(string,start,end)
,从开头(start 0)剪切字符串,直到第一次出现关键字u_size。并将其与固定部分u_size=150连接。将所有这些指令包装在函数
中,并在需要时随时调用它

函数大小相同($string){
$till=strpos($string,'u_size');
$fixed='u_size=150”/>';
返回substr($string,0,$till)。$fixed;
}
//字符串:
$string1='';
$string2='';
$string3='';
//测试:
回声大小相同($string1);
回声大小相同($2);
回声大小相同($string3);
//结果:
<a href="././"><img src="./images/userid=22&u_size=150"/></a>
<a href="././"><img src="./images/userid=15&u_size=150"/></a>
<a href="././"><img src="./images/userid=17&u_size=150"/></a>
$regex = '/(u_size)=(\d+)/';
preg_replace($regex, '$1=150', $string);