还要怎么具体啊,我把原文件都出示了啊,1.php :
<?
$a=1;
$b=3;
$c=2;
?><?
$a=17;
$b=34;
$c=32;
?><?
$a=51;
$b=37;
$c=22;
?>他里面的东西太重复了,
我怎么把1.php 变成 2.php2.php:<?
$a=51;
$b=37;
$c=22;
?>???????????????????????????
csdn的php太让我失望了,我在这里混了2年多了,真是看着他的衰亡啊……

解决方案 »

  1.   

    <?
    include("1.php");
    $arr = get_defined_vars();
    function c($varArr,$varName){
    $bStart=false;$ret="<?\n";
    while (list($key,$val) = each ($varArr)) {
    if($key==$varName)$bStart=true;
        if($bStart) {
         if(is_integer($val))
         $ret.="$key=$val;\n";
         else
         $ret.="$key=\"$val\";\n";
        }
    }
    return $ret."?>" ;
    }
    echo c($arr,"a");
    die();
    ?>
      

  2.   

    不要怪别人,你的问题问得的确太让人摸不着头脑了我猜你的意思就是把程序里冗余的变量赋值消除吧?你直说不就行了?你说你给出程序了,但你给出还是示意性的东西,你的程序就是这样的?如果你的程序就是你给出的这样,在 UltraEdit 编辑器里把 1.php 前面的部分选中,按 Del 键,搞定……你肯定不是要这种“解决方案”吧?秋水大侠的方案对你列出的程序是最巧妙的,但是有一点:你的程序里肯定不会只有变量定义吧(要是这样,手工删除好像费不了多少工夫)?变量都化简之后,肯定还要把一大堆函数、代码之类的拷贝过来,根据程序的不同,工作量也可能很大,跟手工删除差不多。你不给出真正的程序,人家怎么知道什么方法合适?消消火吧