簡體   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