| 订阅 | 在线投稿
分享
 
 
 

php操作php文件

来源:互联网  宽屏版  评论
2008-12-28 07:39:40

听起来有些晕吧?!!使用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];

}
fp=@fopen($filename,]$fp=@fopen($filename,"w") 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} 此正则表达式序列匹配一个用十六进制符号表示的字符

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

 
听起来有些晕吧?!!使用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]; } [url=mailto:$fp=@fopen($filename,]$fp=@fopen($filename,"w[/url]") 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} 此正则表达式序列匹配一个用十六进制符号表示的字符 单就处理字符串而言,使用单引号要比使用双引号速度要快,所以你要在你的程序中选择适当的引号。
󰈣󰈤
 
 
 
>>返回首页<<
 
 热帖排行
 
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
©2005- 王朝网络 版权所有