一段代码执行有关问题
程序员文章站
2022-06-01 18:28:04
...
一段代码执行问题
结果是2句都执行了
本来想做的是只改width超过805的那条,也就是第一条,结果所有的都被替换了。
------解决方案--------------------
$m[1] 返回的是所有匹配的内容.
print_r 看看你就知道了
------解决方案--------------------
问题还没解决呢? 你贴了几段。到底以那段为标准。问题也没描述清楚。
------解决方案--------------------
记得我给你写贴过代码
- PHP code
// preg_match_all('#width="(\d+)"\s*height="(\d+)"#i',$ptext,$m); if($m[1]>805){ $h=($m[2]*805)/$m[1] ; $k=805; $ptext = preg_replace('/(width=)"(\d+)"(\s*height=)"(\d+)"/i','$1"'.$k.'"$3"'.$h.'"',$m); } mysql_query("set names 'gbk'"); $sql = "update pagecontents set page_text = ('{$ptext}') where page_id = ('{$pid}')"; mysql_query($sql) or die(mysql_error());}?>
结果是2句都执行了
- HTML code
//部分page_text // //
本来想做的是只改width超过805的那条,也就是第一条,结果所有的都被替换了。
------解决方案--------------------
$m[1] 返回的是所有匹配的内容.
print_r 看看你就知道了
------解决方案--------------------
问题还没解决呢? 你贴了几段。到底以那段为标准。问题也没描述清楚。
------解决方案--------------------
记得我给你写贴过代码
- PHP code
$page_text = TXT;echo preg_replace_callback('#width="(\d+)"\s*height="(\d+)"#i', 'back', $page_text );//$m[1]是width的值 , $m[2]是height的值。function back($m) { if($m[1]>805){ $h=round(($m[2]*805)/$m[1]); $k=805; return "width=\"$k\" height=\"$h\" "; } return $m[0];}相关文章
相关视频
上一篇: 这个正则这样写有问题吗?