直接replace不行呀。上面我说了,如果那样的话,后置的唯一代码必须是这样:“\";  //网站名称”,而这样“\;”的话,replace得出来的结果是残缺的。

解决方案 »

  1.   

    问题是出在replace函数中,  $fileconend=explode($end,$filecontop[1]);上,如果是这个后置的特征码不唯一,$fileconend[1]得出来的值是被后置特征码分离的数组的第二个值。怎么才能使$fileconend[1]等于从后置特征码以后的全部内容呢?
      

  2.   

    首先你如果要修改config.ini.php的值的话,这个文件就失去意义了。
    你根本就不需要修改,只要在调用文件之后再重新赋值就可以了
      

  3.   

    根本不需要替换啊。重新生成一次这个文件就行了。1.读旧的config
    2.从前台取得新的值
    3.将数组再次写入config
      

  4.   

    重新生成配置文件的话,也是一条一条的写,比如:
    $aa.="<?\n"
    $aa.="$sitename=\"$_POST[sitename]\";\n";
    $aa.=....(此处省略)
    $aa.="?>";然后再把变量aa写入配置文件中。Gdj老大是怎么把这一组一组的变量写入文件的,请教。
      

  5.   

    <?php
    // 控制变量说明
    $note = array(
    'sitename' => '网站名称',
    'siteurl' => '网站地址',
    'dflang' => '默认语言的文件夹名称',
    );//用于读取配置文件
    function load_config() {
      include 'config.inc.php';
      return get_defined_vars();
    }if(! $_POST) {
      //从配置文件生成表单
      echo '<form method=post>';
      foreach(load_config() as $k=>$v) {
        echo "{$note[$k]}<input type=text name=$k value=$v><br>";
      }
      echo '<input type=submit></form>';
    }else {
      //将提交数据写入配置文件
      extract($_POST);
      $fp = fopen('config.inc.php', "w");
      fputs($fp, "<?php\n");
      foreach($note as $k=>$v) {
        fputs($fp, "\$$k = '{$$k}'; //$v\n");
      }
      fputs($fp, "?>");
      fclose($fp);
      echo '<pre>';
      readfile('config.inc.php');
    }?>
      

  6.   

    写一个数组啊。举止个简单的例子,比如你要把所有global变量写进文件buf='<?php';
    foreach($GLOBALS as $k=>$v){
    buf.="\$$k='$v';\r\n";
    }
    buf.="?>";
    file_put_contents($fname,$buf)