有一段代码我想用一个字符串代替其中某段内容:
完整代码:
代码一:
 while($row=mysql_fetch_array($result))
{
       
 }
代码二:
$str="$bxid=iconv('utf-8','gb2312',$row['bxid']);
   $time=iconv('utf-8','gb2312',$row['time']);
   $wupin=iconv('utf-8','gb2312',$row['wupin']);
   $str3.=$bxid."\t".$time."\t".$wupin."\t\n";";
我想用代码二里面的去代替代码一大括号里的内容,即得到这样的效果:
 while($row=mysql_fetch_array($result))
{
     $bxid=iconv('utf-8','gb2312',$row['bxid']);
     $time=iconv('utf-8','gb2312',$row['time']);
     $wupin=iconv('utf-8','gb2312',$row['wupin']);
     $str3.=$bxid."\t".$time."\t".$wupin."\t\n";  
 }
请赐教!

解决方案 »

  1.   


     $bxid=iconv('utf-8','gb2312',$row['bxid']);
         $time=iconv('utf-8','gb2312',$row['time']);
         $wupin=iconv('utf-8','gb2312',$row['wupin']);
         $str3.=$bxid."\t".$time."\t".$wupin."\t\n"; 
    这些代码是我用字符串从数据库里读取出来拼接起来的,然后把这些字符串赋值给$str,我想把这些字符串放在下面代码的大括号里,也就是替换掉那些问号。
    while($row=mysql_fetch_array($result))
    {
           ?????????????????
     }
      

  2.   

    听起来还是很乱
    一个php读取数据库后
    替换自己的部分代码并运行
    还是
    替换另外一个php的代码?
      

  3.   

    从数据库里读出来的内容我已经拼装成一个字符串了,也就是赋值给$str,我就是想把这个字符串放到那个大括号里,形成可以运行的代码,现在就是不知道怎么放好。
      

  4.   

    或者有别的方法也可以
    $bxid=iconv('utf-8','gb2312',$row['bxid']);
    $time=iconv('utf-8','gb2312',$row['time']);
    $wupin=iconv('utf-8','gb2312',$row['wupin']);
    $str3.=$bxid."\t".$time."\t".$wupin."\t\n";
    $bxid,$time,$wupin分别对应的是数据库表中的字段,不过这个字段是动态的,可能是3个也可能是4个也可能是N个。、
    其实就是一个从数据库里导出数据的代码,我想做成动态的,即根据我动态的给出数据库库字段导出数据到EXCEL。
      

  5.   

    两种方案:
    1.写入一个临时文件,include进来,IO是个问题
    2.eval(),结果不可预料两种方案都不建议,你最好重新编程调整思路
      

  6.   

    字段名限死了你的思路,存进一个数组再foreach就不用考虑什么名字了
    或者用数字key的方式考虑问题
      

  7.   

    形如 $str="$bxid=iconv('utf-8','gb2312',$row['bxid']); 这样的语句
    在循环内值总是被覆盖,也就是你只能得到最后一条纪录的值
    请想清楚了再说从你需要替换的代码上看,你不过只是想把查询的结果从 utf-8 编码换成 gbk 编码(注意:应该是gbk,而不是gb2312.否则会丢失很多数据)
    那么你只需在查询前执行 mysql_query('set names gbk');
    这样取回的数据就是 gbk 编码的了(mysql会帮你完成编码转换工作)如果你还需要对取回的数据做其他操作,那么可以写一个函数。当然用一个循环也是可以的
    比如为使程序通用化,那么字段名不应直接出现在代码中。仍以编码转换为例
    while($row=mysql_fetch_array($result))
    {
      foreach($row as $k=>$v) $$k = iconv('utf-8','gb2312',$v); 
    }
    就完成了你所有的形如 $bxid=iconv('utf-8','gb2312',$row['bxid'] 的操作