PHP遍历文件夹下文件,怎么把所有文件存为一个字符串?
3个回答
2012-07-10 · 知道合伙人互联网行家
关注
展开全部
<?php
function scandir_through($dir,$pattern='*',$subInclude=true,$flag=GLOB_BRACE){
$files = array();
//获取当前目录下所有文件及文件夹
$items = glob($dir . '/*');
//遍历所有项目,若设置$subInclude为true,则继续遍历子目录
for ($i = 0; $i < count($items); $i++) {
if ($subInclude && is_dir($items[$i])) {
$add = glob($items[$i] . '/*');
if($add === false) $add = array();
$items = array_merge($items, $add);
}else {
$slash = strrpos($items[$i],'/');
$dir = substr($items[$i],0,$slash);
$file = substr($items[$i],$slash+1);
//若当前文件匹配文件查找模式$pattern,则加入$files数组中
if(in_array($items[$i],glob($dir.'/'.$pattern,$flag))) {
$files['withDir'][] = $items[$i];
$files['filename'][] = $file;
}
}
}
return $files;
}
file_put_contents('./allFlieWithDir.php',implode("\r\n",array_shift(scandir_through('.')))); //widthDir
file_put_contents('./allFlieWithArrayStruct.php',var_export(scandir_through('.'),true)); //withArrayStruct
file_put_contents('./allFlie.php',implode("\r\n",array_pop(scandir_through('.')))); //Just filename
function scandir_through($dir,$pattern='*',$subInclude=true,$flag=GLOB_BRACE){
$files = array();
//获取当前目录下所有文件及文件夹
$items = glob($dir . '/*');
//遍历所有项目,若设置$subInclude为true,则继续遍历子目录
for ($i = 0; $i < count($items); $i++) {
if ($subInclude && is_dir($items[$i])) {
$add = glob($items[$i] . '/*');
if($add === false) $add = array();
$items = array_merge($items, $add);
}else {
$slash = strrpos($items[$i],'/');
$dir = substr($items[$i],0,$slash);
$file = substr($items[$i],$slash+1);
//若当前文件匹配文件查找模式$pattern,则加入$files数组中
if(in_array($items[$i],glob($dir.'/'.$pattern,$flag))) {
$files['withDir'][] = $items[$i];
$files['filename'][] = $file;
}
}
}
return $files;
}
file_put_contents('./allFlieWithDir.php',implode("\r\n",array_shift(scandir_through('.')))); //widthDir
file_put_contents('./allFlieWithArrayStruct.php',var_export(scandir_through('.'),true)); //withArrayStruct
file_put_contents('./allFlie.php',implode("\r\n",array_pop(scandir_through('.')))); //Just filename
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是存所有文件的文件名字吧?
定义一个变量,遍历时把每个名字追加到变量后面,为方便取每个文件名字,你可以用一个特殊符号分割起来。
$fileNames = "";
foreach($name in $files){
$fileNames .= $name + '$';
}
定义一个变量,遍历时把每个名字追加到变量后面,为方便取每个文件名字,你可以用一个特殊符号分割起来。
$fileNames = "";
foreach($name in $files){
$fileNames .= $name + '$';
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我直接给你完整代码吧:
<?php
function listDir($dir){
$DBserver = "localhost";
$DBname = "数据库";
$DBuser = "root";
$DBpassword = "";
$con = mysql_connect("localhost","root","");
mysql_select_db("数据库");
if (is_dir($dir)){
if($dh = opendir($dir)){
while(($file = readdir($dh))!== false){
if((is_dir($dir."/".$file))&&$file!="."&&$file!=".."){
echo "<b><font color='red'>文件名:</font></b>",$file,"<br><hr>";
listDir($dir."/".$file."/");
}
else{
if($file!="."&&$file!=".."){
echo $file." ";
$arr = explode(" ",$file);
print_r($arr);
$sql = "insert into 数据库表 (字段) values ('{$arr[0]}')";
mysql_query($sql) or die(mysql_error());
}
}
}
closedir($dh);
}
}
}
listDir("你的文件夹目录");
?>
<?php
function listDir($dir){
$DBserver = "localhost";
$DBname = "数据库";
$DBuser = "root";
$DBpassword = "";
$con = mysql_connect("localhost","root","");
mysql_select_db("数据库");
if (is_dir($dir)){
if($dh = opendir($dir)){
while(($file = readdir($dh))!== false){
if((is_dir($dir."/".$file))&&$file!="."&&$file!=".."){
echo "<b><font color='red'>文件名:</font></b>",$file,"<br><hr>";
listDir($dir."/".$file."/");
}
else{
if($file!="."&&$file!=".."){
echo $file." ";
$arr = explode(" ",$file);
print_r($arr);
$sql = "insert into 数据库表 (字段) values ('{$arr[0]}')";
mysql_query($sql) or die(mysql_error());
}
}
}
closedir($dh);
}
}
}
listDir("你的文件夹目录");
?>
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询