最简单的文件列表读取
通过glob函数可以通过通配符获取文件列表,虽然大多数时候使用读取目录的形式,不过该方式依旧是最简单的。
<?php
/* 最简单的文件列表读取 */
header("Content-Type: text/plain; charset=utf-8");
$list = glob("*"); //该函数可以通过通配符获取文件列表
echo "\$list类型为:".gettype($list)."\n";//gettype获取变量类型
print_r($list);
$file_count = 0;
$dir_count = 0;
foreach($list as $value){
if(is_file($value)){ //使用is_file判断字符串是否是一个文件
echo "第\t".++$file_count."\t个文件:\t$value\n";
}
if(is_dir($value)){ //使用is_dir判断是否是一个文件夹
echo "第\t".++$dir_count."\t个目录:\t$value\n";
}
}
?>
/* 最简单的文件列表读取 */
header("Content-Type: text/plain; charset=utf-8");
$list = glob("*"); //该函数可以通过通配符获取文件列表
echo "\$list类型为:".gettype($list)."\n";//gettype获取变量类型
print_r($list);
$file_count = 0;
$dir_count = 0;
foreach($list as $value){
if(is_file($value)){ //使用is_file判断字符串是否是一个文件
echo "第\t".++$file_count."\t个文件:\t$value\n";
}
if(is_dir($value)){ //使用is_dir判断是否是一个文件夹
echo "第\t".++$dir_count."\t个目录:\t$value\n";
}
}
?>
读取一个文件内容并输出
读取文件很简单,这里使用了一个hr函数,输出n个短横线,同时可以使用str_repeat替代
<?php
/* 文件内容的读取 */
//首先提示,我们只读取我们当前已经写过的代码内容,内容为utf-8编码,并且以纯文本形式输出
header("Content-Type: text/plain; charset=utf-8");
echo "脚本名为:".$_SERVER['SCRIPT_NAME']."\n";
$filename = basename($_SERVER['SCRIPT_NAME']); //可以通过$_SERVER['SCRIPT_NAME']获取当前页面的PHP文件执行路径,那么basename就可以将其中的文件名提取出来
echo "提取到的默认文件名为:$filename\n";
if(!empty($_GET['name'])){
//首先判断是否有通过GET参数提交一个名为name的参数
//empty()函数能够事先检查变量是否存在,可以也就是可以省略isset()判断
$filename = $_GET['name'];
echo "\$_GET参数提交的文件名为:$filename\n";
}
if(!is_file($filename)){//文件不存在,程序结束
die($filename."=>不是一个有效的文件\n");
}
hr();//可以看到此时输出了10个短横岗
$content = file_get_contents($filename); //此时获取文件内容,仅仅使用函数file_get_content
echo "文件名:$filename, 内容长度:".strlen($content),"\n";
hr(70); //输出70个长度分割线
echo $content; //输出原始文件内容
echo "\n";//输出一个换行,避免$content不是以换行结尾,导致分割线与内容出现在同一行
hr(70);
function hr($nu=10){
//输出一个水平线,这里使用一个默认值,$nu=10,说明该参数可以省略,也可以保留,省略时为$nu值为10,否则值被覆盖
for($i =0; $i<$nu; $i++)echo "-";
echo "\n";
}
?>
/* 文件内容的读取 */
//首先提示,我们只读取我们当前已经写过的代码内容,内容为utf-8编码,并且以纯文本形式输出
header("Content-Type: text/plain; charset=utf-8");
echo "脚本名为:".$_SERVER['SCRIPT_NAME']."\n";
$filename = basename($_SERVER['SCRIPT_NAME']); //可以通过$_SERVER['SCRIPT_NAME']获取当前页面的PHP文件执行路径,那么basename就可以将其中的文件名提取出来
echo "提取到的默认文件名为:$filename\n";
if(!empty($_GET['name'])){
//首先判断是否有通过GET参数提交一个名为name的参数
//empty()函数能够事先检查变量是否存在,可以也就是可以省略isset()判断
$filename = $_GET['name'];
echo "\$_GET参数提交的文件名为:$filename\n";
}
if(!is_file($filename)){//文件不存在,程序结束
die($filename."=>不是一个有效的文件\n");
}
hr();//可以看到此时输出了10个短横岗
$content = file_get_contents($filename); //此时获取文件内容,仅仅使用函数file_get_content
echo "文件名:$filename, 内容长度:".strlen($content),"\n";
hr(70); //输出70个长度分割线
echo $content; //输出原始文件内容
echo "\n";//输出一个换行,避免$content不是以换行结尾,导致分割线与内容出现在同一行
hr(70);
function hr($nu=10){
//输出一个水平线,这里使用一个默认值,$nu=10,说明该参数可以省略,也可以保留,省略时为$nu值为10,否则值被覆盖
for($i =0; $i<$nu; $i++)echo "-";
echo "\n";
}
?>
文件的写入,同样通过表单的形式
<?php
/* 文件的创建与写入 */
header("Content-Type: text/html; charset=utf-8");
?>
<html>
<head>
<title>创建文件</title>
</head>
<body>
<?php
if($_SERVER['REQUEST_METHOD'] == "POST"){
echo "<p style="color:blue;">",write_file($_POST["filename"],$_POST["content"]),"</p>";//调用自定义函数进行文件写入,可输出错误
}
?>
<h3>文件创建操作</h3>
<form action="" method="post">
<p><label>文件名:<input name="filename" type="text" value="<?php
if(isset($_POST["filename"]))echo $_POST["filename"];//判断是否
?>" /></label></p>
<p>文件内容:</p>
<textarea name="content" rows="10" cols="50"></textarea><!--rows表示默认显示10行,cols表示默认显示50列-->
<p></p><button type="submit">写入文件</button></p>
</form>
</body>
</html>
<?php
function write_file($file_name,$content){
//自定文件写入函数
$directory = "file/write";//写入前提条件,该相对目录一定要存在
if(!is_dir($directory))return "写入文件夹不存在";//进行文件夹目录存在判断,如果不存在手动创建
if(file_exists($directory."/".$file_name)) return "目标文件或路径已经存在,当前操作无法覆盖,取消该判定即可覆盖文件";
$count = file_put_contents($directory."/".$file_name,$content);//关键性语句,file_put_content默认必须要两个参数,路径和数据,出错时返回false,否则返回整型数字,表示写入的内容
if($content === false)return "文件写入失败";//进行全等判断,因为如果只是进行等值判断会出现0也相等
return "写入$count 个字节到$directory/$file_name";
}
?>
/* 文件的创建与写入 */
header("Content-Type: text/html; charset=utf-8");
?>
<html>
<head>
<title>创建文件</title>
</head>
<body>
<?php
if($_SERVER['REQUEST_METHOD'] == "POST"){
echo "<p style="color:blue;">",write_file($_POST["filename"],$_POST["content"]),"</p>";//调用自定义函数进行文件写入,可输出错误
}
?>
<h3>文件创建操作</h3>
<form action="" method="post">
<p><label>文件名:<input name="filename" type="text" value="<?php
if(isset($_POST["filename"]))echo $_POST["filename"];//判断是否
?>" /></label></p>
<p>文件内容:</p>
<textarea name="content" rows="10" cols="50"></textarea><!--rows表示默认显示10行,cols表示默认显示50列-->
<p></p><button type="submit">写入文件</button></p>
</form>
</body>
</html>
<?php
function write_file($file_name,$content){
//自定文件写入函数
$directory = "file/write";//写入前提条件,该相对目录一定要存在
if(!is_dir($directory))return "写入文件夹不存在";//进行文件夹目录存在判断,如果不存在手动创建
if(file_exists($directory."/".$file_name)) return "目标文件或路径已经存在,当前操作无法覆盖,取消该判定即可覆盖文件";
$count = file_put_contents($directory."/".$file_name,$content);//关键性语句,file_put_content默认必须要两个参数,路径和数据,出错时返回false,否则返回整型数字,表示写入的内容
if($content === false)return "文件写入失败";//进行全等判断,因为如果只是进行等值判断会出现0也相等
return "写入$count 个字节到$directory/$file_name";
}
?>
不错。支持下。