我就是想不通,因为某些原因:
$string = "#mainparent {
position: relative;
top: 100px;
left: 100px;
width:4994px;
}";
$elementwidth = "88";
$re1='(.*?)'; # Non-greedy match on filler
$re2='(mainparent)'; # Word 1
$re3='(.*)'; # Non-greedy match on filler
$re4='(width:)';
$re5='(.*)'; # Word 2
$re6='(;)'; # Any Single Character 1
$pattern="/".$re1.$re2.$re3.$re4.$re5.$re6."/s";
$replacement= '$1'.'$2'.'$3'. '$4'. $element_width .'$6';
$return_string = preg_replace_component ($string, $pattern, $replacement );
#c}
echo $return_string; return;输出这个(如下),我不明白为什么它要替换"width:“基于我设置它的方式..任何建议都将不胜感激
#mainparent { position: relative; top: 100px; left: 100px; 88; } 发布于 2010-08-17 10:41:58
问题是您的替换字符串如下所示:
'$1$2$3$488$6'
^^^因为紧跟在组号后面的字符是一个数字,所以它被解释为组48而不是组4。
请参阅preg_replace手册“示例#1使用后跟数字的反向引用”。使其工作所需的最小更改是用大括号将4括起来,以便将它与88分开。
$replacement = '$1' . '$2' . '$3'. '${4}'. $element_width . '$6';但是这不是一个很好的方法,而且你的代码也有很多问题。
$element_width.$elementwidth,然后编写$element_width.https://stackoverflow.com/questions/3498926
复制相似问题