在我的服务器中,我有不同的目录,例如:
/- 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();
}
}