php操作php文件

  •   2009-07-31/22:45
  • 听起来有些晕吧?!!使用php来操作php页面。有一个小的用途,在一个系统当中可能会有个别的小项不便存入数据库,但是我们又要经常在其他页面当中调用,而且还需要更新,那么我们就可以用这种方式来解决。其中遇到几个小问题,搞了俺半天时间才搞定

       比如说:用户需要更改某一个标题,但是单独为这个标题在建立一个表,显然不太合适。所以就想到,把这个变量写入php文件当中,供其它页面调用。name.php文件,需要的内容如下:

    <?

    $name="标题";

    ?>

        "标题"这两个字需要用户可以更新。那么我们如何来实现:

         一个简单的提交信息页面add_name.php

    <form action="addname.php" method="post">
    <input type="text" name="name" size="20" />
    <input type="submit" value="提交" />

         一个接收用户提交信息并进行处理的页面addname.php

    <?
    $name=$_POST['name'];             //接收从add_name.php传过来的name值
    if(empty($name)){                 //判断是否为空
    ?>
    <script language='javascript'> 
     alert("名称不能为空!");
     document.location='add_name.php';
    </script>
    <?
    }else{ 
     $filename="name.php";           //定义操作文件
     $delline=2;                     //要删除的行数 
     if(!file_exists($filename)){    //判断文件是否存在
       die("指定文件未发现!操作中断!");
     }
     $farray=file($filename);        //读取文件数据到数组中
     for($tmpa=0;$tmpa<count($farray);$tmpa++){
        if(($tmpa+1)==2){            //判断行数
        $farray[$tmpa]="\$name2="."\"".$name."\";\n";     *
                                     //替换原有行的数据
        }                            //重新整理后的数据
      $newfp.=$farray[$tmpa];
    }
    ") or die("写方式打开文件 $filename 失败");

                                    //我们以写的方式打开文件

    @fwrite($fp,$newfp) or die("文件写入失败");

    @fclose($fp);                   关闭文件
    }
    ?>

        这段代码只是做测试用117-202 1Z0-043 1z0-042  。写的不规范的地方倒是贻笑大方了!

        这样我们就可以用来更新name.php文件当中的变量。当然这是一种比较笨的方法(谁让俺也是笨人)。这种需求还有很多种实现方式。

        其中*标记的一行当中,我们用到转义字符,这个说起来很简单,但是我测试的时候由于方法不得当倒是浪费了不少时间。现在把转义字符表贴在下面:

    转义字符 序列含义
      \n      换行(LF 或 ASCII 字符 0x0A(10))
      \r      回车(CR 或 ASCII 字符 0x0D(13))
      \t      水平制表符(HT 或 ASCII 字符 0x09(9))
      \\      反斜线
      \$      美元符号
      \"      双引号

    \[0-7]{1,3} 此正则表达式序列匹配一个用八进制符号表示的字符
    \x[0-9A-Fa-f]{1,2} 此正则表达式序列匹配一个用十六进制符号表示的字符


    单就处理字符串而言,使用单引号要比使用双引号速度要快,所以你要在你的程序中选择适当的引号。


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多