繁体   English   中英

根据扩展名在目录中添加文件

[英]Add file in directory depending on the extension

在我的服务器中,我有不同的目录,例如:
/-js
/-html
/-php
/-css。
我想创建这样的方法addFile($file_name,$file_extension)并在我的目录文件中创建诸如$file_name并在目录中创建$file_extension ,该文件将具有扩展名,例如$file extension 我怎样才能做到这一点?

您可以使用file_put_contents 您可以添加数据并创建具有任何扩展名的文件。 在$ filename中,您可以将完整路径放入文件夹和文件名。

记住file_put_contents不创建目录结构。 仅文件。

为了防止这种情况,您可以使用以下方法:

if (!is_dir('upload/images/')) {
  // dir doesn't exist, make it
  mkdir('upload/images/');
}

$image = 'file.txt';
$some_data = 'Text inside your file';

file_put_contents('upload/images/' . $image, $some_data);

否则,您可以从本文http://www.w3schools.com/php/php_file_create.asp了解有关创建文件的信息

因此,您的方法将类似于:

function addFile($file_name, $file_extension) {
  $dirs = ['js', 'css', 'html', 'php'];
  foreach($dirs as $dir) {
      if($dir == $file_extension) {
          file_put_contents($dir . '/' . $file_name . '.' . $file_extension, 'Some text data? ');
      }
  }
}

作为一个大概的例子,下面的内容可能有用吗?

function addfile( $filename=false ){
    if( $filename && file_exists( $filename ) ){

        clearstatcache();

        $basedir = $_SERVER['DOCUMENT_ROOT'];
        $ext=pathinfo( $filename, PATHINFO_EXTENSION );
        $name=pathinfo( $filename, PATHINFO_BASENAME );

        switch( $ext ){
            case 'css': $dir='/css/'; break;
            case 'txt': $dir='/txt/'; break;

            case 'js': $dir='/js/';break;
            case 'html': $dir='/html/'; break;
            case 'php': $dir='/php/'; break;

            case 'jpg':
            case 'jpeg': $dir='/images/jpg/'; break;
            case 'png': $dir='/images/png/'; break;
            case 'gif': $dir='/images/gif/'; break;

            case 'mp3': $dir='/audio/mp3/'; break;
            case 'mp4': $dir='/video/mp4/'; break;

            default: $dir=false; break;
        }
        if( $dir ){
            $targetpath = $basedir . $dir;

            if( !file_exists( $targetpath ) ){
                /* create the directory - recursively if necessary */
                createdirs( $targetpath );
            }

            return file_put_contents( $targetpath . $name, '', FILE_TEXT );
        }

        return false;
    }
    return false;
}



function createdirs( $path=NULL, $perm=0644 ) {
    if( !file_exists( $path ) ) {
        createdirs( dirname( $path ) );
        mkdir( $path, $perm, TRUE );
        clearstatcache();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM