PHP怎么遍历一个文件夹下所有的文件,默认显示第一个内容。

PHP怎么遍历一个文件夹下所有的文件,默认显示第一个内容。,第1张

在 php 语言里,列出一个文件夹下所有的文件,最简单的是使用 scandir 函数,示例如下:

<php
$dir    = '/tmp';
$files1 = scandir($dir);
print_r($files1);
>

scandir 原型定义如下:

array scandir ( string $directory [, int $sorting_order [, resource $context ]] )


第2个参数,可以将获取的文件列表按升、降序进行排序。

sybase_connect
连上数据库。
语法: int sybase_connect(string [servername], string [username], string [password]);
返回值: 整数
函数种类: 数据库功能
本函数用来打开与 Sybase 数据库的连接。参数 servername 为欲连上的数据库服务器名称。参数 username 及 password 可省略,分别为连接使用的帐号及密码。使用本函数需注意早点关闭数据库,以减少系统的负担。连接成功则返回数据库的连接代号,失败返回 false 值。

<php
/
@src始源文件的地址
@dest是目标文件的地址
@file_permission目标文件的权限
/
function filecopy($src, $dest, $file_permission = 0644) {
$src = str_replace('\\', '/', $src);
$src = str_replace('//', '/', $src);
$dest = str_replace('\\', '/', $dest);
$dest = str_replace('//', '/', $dest);

if (is_file($src) ) { //只能进行文件的复制/如想复制文件夹,自己写方法吧
if(is_dir($dest)) {
if ($dest[ strlen($dest)-1 ] != '/') {
$__dest = $dest "/";
}

$__dest = basename($src);
} else {
$__dest = $dest;
}
$res = copy($src, $__dest);
chmod($__dest, $file_permission);
}
}
function procrss_copy($dir, $file) {
$_exclude = array('', '', 'svn');
$d = dir($dir);

while (false !== ($entry = $d->read())) {
filecopy($file, $dir '/' $entry);
if(!in_array($entry, $_exclude)) {
if(is_dir($dir '/'$entry)) {
procrss_copy($dir '/'$entry); //递归读文件
} else {
echo $entry "\n";
}
}
}
$d->close();
}
procrss_copy($newdir, 'Wringtxt');
process_copy你总要调用执行复制的函数吧

今天刚好遇到这个问题,发现书上的例子while-list—each遍历多维数组并没有说到,自己刚开始尝试时候都没有成功,后来琢磨了下,发现代码是这样的

下面以三维数组为例:

<php
$array = array(
array(
array( '1' , '张三' , 'A公司' , '北京市' , '01012345678' , 'a@baiducom' ) ,
array( '2' , '李四' , 'B公司' , '天津市' , '02012345678' , 'b@baiducom' ) ,
array( '3' , '王五' , 'C公司' , '上海市' , '02112345678' , 'c@baiducom' )
) ,
array(
array( '1' , '张三' , '市场部' , '5000' ) ,
array( '2' , '李四' , '客服部' , '4000' ) ,
array( '3' , '王五' , '售后部' , '3000' ) ,
array( '4' , '马六' , '行政部' , '2000' )
) ,
array(
array( '1' , '张三' , '市场部经理') ,
array( '2' , '李四' , '客服部经理') ,
array( '3' , '王五' , '售后部经理') ,
array( '4' , '马六' , '行政部经理')
)
) ;
/
while遍历数组
/
while( list( $a , $b ) = each( $array ) ) {
while( list( $c , $d ) = each( $b ) ) {
while( list( $name , $value ) = each( $d ) ) {
echo $name  '&nbsp;:&nbsp;'  $value  '<br />' ;
}
echo '------------------------------<br />' ;
}
}
>

执行结果:

0 : 1
1 : 张三
2 : A公司
3 : 北京市
4 : 01012345678
5 : a@baiducom
------------------------------
0 : 2
1 : 李四
2 : B公司
3 : 天津市
4 : 02012345678
5 : b@baiducom
------------------------------
0 : 3
1 : 王五
2 : C公司
3 : 上海市
4 : 02112345678
5 : c@baiducom
------------------------------
0 : 1
1 : 张三
2 : 市场部
3 : 5000
------------------------------
0 : 2
1 : 李四
2 : 客服部
3 : 4000
------------------------------
0 : 3
1 : 王五
2 : 售后部
3 : 3000
------------------------------
0 : 4
1 : 马六
2 : 行政部
3 : 2000
------------------------------
0 : 1
1 : 张三
2 : 市场部经理
------------------------------
0 : 2
1 : 李四
2 : 客服部经理
------------------------------
0 : 3
1 : 王五
2 : 售后部经理
------------------------------
0 : 4
1 : 马六
2 : 行政部经理
------------------------------

亲,你好,很高兴解答你的问题

如果你使用的是PHP55以上版本,可以直接使用以下代码就可以获取到:

$sysIds = array_column($array, 'SysId'); // $array 就是你上面那个数组

如果你用的PHP还是55以下的版本,那么你只能使用foreach循环获取了:

$sysIds = [];
foreach ($array as $arr) {
    foreach ($arr as $key => $value) {
        $sysIds[] = $value;
    }
}

希望可以帮到你哦!~~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13333247.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-16
下一篇 2023-07-16

发表评论

登录后才能评论

评论列表(0条)

保存