文件操作相关的函数
函数 作用
touch() 创建一个文件 使用方法touch("文件名")
unlink() 删除一个文件 使用方法unlink("文件路径")
rename() 移动文件或重命名文件 使用方法rename("当前 文件路径","目标文件路径")
copy() 拷贝文件 使用方法copy("当前","目标")
文件的打开与关闭(读内容和写内容)
函数 作用
file_get_contents() 读取文件内容
file_put_contents() 写入文件内容
file() 将文件读入一个数组中
readfile() 读取文件内容并输出
例一:
<?php
//读取函数 file_get_contents() 和写入函数file_put_contents() 的使用
$str=file_get_contents("http://www.baidu.com"); //将百度读取到$str
$str_img='/<imgs+src=.*?s*/?>/i'; //定义正则规则
preg_match_all($str_img,$str,$imgs); //使用匹配函数进行<img src= />标签的匹配
echo '<pre>';
print_r($imgs);
echo $imgs[0][0];
echo '</pre>';
echo '<hr>';
$newimg='';
foreach ($imgs[0] as $img){ //遍历匹配出来的$imgs图片数组
$newimg.=$img.'<br />';
}
echo $newimg;
file_put_contents('test.txt',$newimg); //将获取的$newimg写入文件test.txt中
?>
例二:
<?php
//读取指定文件(config.inc.php)的内容,对部分进行修改并写入原文件中
if(isset($_POST["sub"])){ //判断有内容提交
setConfig($_POST);
}
function setConfig ($post){
$str=file_get_contents("config.inc.php"); //读取config.inc.php内容
$zz=array();
$rep=array();
foreach($post as $key=>$value){
$zz[]='/define("'.$key.'",s*.*?);/i'; //利用遍历数组生成正则表达式
$rep[]='define("'.$key.'", "'.$value.'");'; //利用遍历数组生成替换内容表达式
}
echo '<pre>'; //输出原型,检查正则表达式和替换内容是否正确
print_r($zz);
print_r($rep);
print_r($post);
echo '</pre>';
$str=preg_replace($zz,$rep,$str); //利用替换函数对$str进行替换
file_put_contents("config.inc1.php",$str); //将替换好的内容写入文件
}
?>
<html>
<head>
<title>file_get_contents()和file_put_contents()实例</title>
</head>
<body>
<!-- 本页面名称为file1.php-->
<form action="file1.php" method="post"><br />
Host:<input type="text" name="DB_HOST" /><br />
User:<input type="text" name="DB_USER" /><br />
Pass:<input type="text" name="DB_PWD" /><br />
DBname:<input type="text" name="DB_NAME" /><br />
TAB_PREFIX:<input type="text" name="TAB_PREFIX" /><br />
<input type="submit" name="sub" value="提交"><br />
</form>
</body>
</html>
例三:
<?php
//利用file()函数将文件cms.sql读入数组中进行处理 ,trim()处理空格 ,explode()分割
$lines=file("cms.sql"); //将cms.sql读入$line数组中
$sqlstr="";
echo '<pre>'; //显示读入的结果
print_r($lines);
echo '</pre>';
echo '<hr />';
foreach($lines as $line){ //获取读入的每行数据
$line=trim($line); //去除每行两本的空格
if($line!=""){ //获取不是空白的行
if(!($line{0}=="#" || substr($line,0,2)=="--")){ //排除注释
$sqlstr.=$line; //将所有行连接起来
}
}
}
$sqlstr=rtrim($sqlstr); //去除最后的分号;
$sql_contents=explode(";",$sqlstr); //用分割函数以;为标志进行分割
echo '<pre>'; //输出分割后的数据
print_r($sql_contents);
echo '</pre>';
?>