欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

一段代码执行有关问题

程序员文章站 2022-05-18 15:23:33
...
一段代码执行问题
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];
} 
一段代码执行有关问题

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频