您的位置:首页 > 编程语言 > PHP开发

PHP文件相关函数试题

2016-08-08 20:58 309 查看
一.问答题

1.返回路径中的文件名部分的函数是什么?

2.改变文件模式的函数是什么?

3.拷贝文件的函数是什么?

4.返回路径中的目录部分的函数是什么?

5.将上传的文件移动到指定位置的函数是?

6.返回规范化的绝对路径名的函数是什么?

二.编程题

1.请用三种方法写出函数,获取某个目录下所有文件和文件夹名的关联数组,要求给函数传一个路径参数,返回一个数组,格式为:array('dir'=>array('dir1','dir2'...),'file'=>array())

2.封装一个系统文件类,类中方法包括:判断文件是否存在,获取文件内容(包括锁和不锁文件),输入内容到一个文件,追加内容到文件,删除文件,移动文件,拷贝文件,文件的文件名部分,文件的目录部分,文件的后缀名部分,文件的mine类型,文件的大小,获取文件上一次修改时间,判断是否为路径,判断文件是否可写,判断是否为文件,创建文件夹,复制一个目录,删除一个目录。

答案

一.问答题

1.string basename ( string
$path
[, string
$suffix
] )

2.bool chmod ( string
$filename
, int
$mode
)

3.bool copy ( string
$source
, string
$dest
[, resource
$context
] )

4.string dirname ( string
$path
)

5.bool move_uploaded_file ( string
$filename
, string
$destination
)

6.string realpath ( string
$path
)

二.编程题

1

function scanDir1($dir = './'){

$result['dir'] = $result['file'] = array();

if(!is_dir($dir)) return $result;

foreach (scandir($dir) as $df) {
if($df==='.'||$df==='..') continue;
if(is_dir($dir.'/'.$df)) $result['dir'][] = $df;
if(is_file($dir.'/'.$df)) $result['file'][] = $df;
}

return $result;
}

function scanDir2($dir = './'){

$result['dir'] = $result['file'] = array();

if(!is_dir($dir)) return $result;

$handle = dir($dir);
while (($df = $handle -> read()) !== false) {
if($df==='.'||$df==='..') continue;
if(is_dir($dir.'/'.$df)) $result['dir'][] = $df;
if(is_file($dir.'/'.$df)) $result['file'][] = $df;
}

$handle -> close();
return $result;
}

function scanDir3($dir = './'){

$result['dir'] = $result['file'] = array();

if(!is_dir($dir)) return $result;

$handle = opendir($dir);
while (($df = readdir($handle)) !== false) {
if($df==='.'||$df==='..') continue;
if(is_dir($dir.'/'.$df)) $result['dir'][] = $df;
if(is_file($dir.'/'.$df)) $result['file'][] = $df;
}

return $result;
}


2.

<?php

class FileSystem{

public function exists($path)
{
return file_exists($path);
}

public function isFile($path)
{
return is_file($path);
}

public function isDir($path)
{
return is_dir($path);
}

public function get($path,$lock = false)
{
if(!$this->exists($path)) return '';
if($lock){
return $this -> lockGet($path);
}else{
return file_get_contents($path);
}
}

private function lockGet($path)
{
$contents = '';
$handle = fopen($path, 'r');
if($handle){
try {
if(flock($handle, LOCK_SH)){
while (!feof($handle)) {
$contents .= fread($handle, 1048576);
}
}
} finally {
fclose($handle);
}
}
return $contents;
}

public function put($path,$contents,$lock = false)
{
return file_put_contents($path,$contents,$lock?LOCK_SH:0);
}

public function append($path,$contents)
{
return file_put_contents($path,$contents,FILE_APPEND);
}

public function delete($path)
{
if($this->isFile($path)){
return unlink($path);
}else if($this->isDir($path)){
foreach (scandir($path) as $df) {
if($df!=='.'||$df!=='..'){
$this->delete($path.'/'.$df);
}
}
rmdir($path);
}
}

public function move($path,$target)
{
return rename($path,$target);
}

public function copy($path,$target)
{
return copy($path,$target);
}

public function name($path)
{
return pathinfo($path,PATHINFO_FILENAME);
}

public function dirname($path)
{
return pathinfo($path,PATHINFO_DIRNAME);
}

public function extension($path)
{
return pathinfo($path,PATHINFO_EXTENSION);
}

public function type($path)
{
return filetype($path);
}

public function size($path)
{
return filesize($path);
}

public function lastModified($path)
{
return filemtime($path);
}

public function isWritable($path)
{
return is_writable($path);
}

public function makeDir($path,$mode = 0755)
{
return @mkdir($path,$mode);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐