フォノクラフト株式会社:作業メモや備忘録など » File http://121.50.42.205/note 作業メモや備忘録など... Fri, 05 Jul 2013 05:17:27 +0000 ja hourly 1 http://wordpress.org/?v=3.1.3 特定のディレクトリ内の特定の拡張子を持つファイルを降順でリストする。 http://121.50.42.205/note/%e7%89%b9%e5%ae%9a%e3%81%ae%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e5%86%85%e3%81%ae%e7%89%b9%e5%ae%9a%e3%81%ae%e6%8b%a1%e5%bc%b5%e5%ad%90%e3%82%92%e6%8c%81%e3%81%a4%e3%83%95%e3%82%a1_1531 http://121.50.42.205/note/%e7%89%b9%e5%ae%9a%e3%81%ae%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e5%86%85%e3%81%ae%e7%89%b9%e5%ae%9a%e3%81%ae%e6%8b%a1%e5%bc%b5%e5%ad%90%e3%82%92%e6%8c%81%e3%81%a4%e3%83%95%e3%82%a1_1531#comments Wed, 25 Jul 2012 07:24:49 +0000 admin http://phono.co.jp/note/?p=1531

特定のディレクトリ内の特定の拡張子を持つファイルを降順でリストしてみます。

こんな感じ

・特定のディレクトリ内のファイルをリストします。
・.tsvという拡張子のファイルをリストします。
・foreachの前にrsort($list); を入れて降順にします。

サンプルダウンロード

dir_file_list.zip(3kb)

サンプルソース

<select name="file">
<option value="">ファイルを選択してください。</option>
<?php

function listFiles($dir,$suffix){
	$len_suffix=strlen($suffix);
	$path_id=opendir($dir);
	
		while( $file_name = readdir($path_id) ){
		$l=strlen($file_name);
			if( $l > $len_suffix ){
			$mysuffix=substr($file_name,$l-$len_suffix);
			
				if( $mysuffix==$suffix ){
					#print $file_name;
					$list[] = $file_name;
				}
			}
		}
	
	return $list;
}

//ディレクトリを指定
$dir= "log/";
//どの拡張子のファイルを一覧に出すか指定
$list=listFiles($dir,".tsv");

//昇順
//sort($list); 
//降順
rsort($list); 

foreach( $list as $file_name ){
	print '<option value="' . $dir . '' . $file_name . '">' . $dir . '' . $file_name . '</option>';
}
?>
</select>

]]>
http://121.50.42.205/note/%e7%89%b9%e5%ae%9a%e3%81%ae%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e5%86%85%e3%81%ae%e7%89%b9%e5%ae%9a%e3%81%ae%e6%8b%a1%e5%bc%b5%e5%ad%90%e3%82%92%e6%8c%81%e3%81%a4%e3%83%95%e3%82%a1_1531/feed 0
特定ディレクトリ内のファイルを一括削除 http://121.50.42.205/note/%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e5%86%85%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e4%b8%80%e6%8b%ac%e5%89%8a%e9%99%a4_242 http://121.50.42.205/note/%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e5%86%85%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e4%b8%80%e6%8b%ac%e5%89%8a%e9%99%a4_242#comments Sat, 02 Jul 2011 04:18:21 +0000 admin http://phono.co.jp/note/?p=242

ディレクトリ構成

├ /upload_files/(削除するファイルを収めるのディレクトリ)
└ /file_delete_admin/
 └ index.php(スクリプト本体)

ソース ダウンロード

file_delete_set.zip

ソース

	<?php
	//ファイル削除処理
	if($_REQUEST['del'] == "del"){
		$CacheDir = "../upload_files/";//ディレクトリ名
		$dir = opendir($CacheDir);
		while(($ent = readdir()) !== FALSE) {
			if ($ent != "." && $ent != "..") {
				unlink($CacheDir."/".$ent);
			}
		}
		echo '<span style="color:#993300;">ディレクトリ内のファイルを<br />全て削除しました。</span>';
	}
	?>
	
	<ol>
	<?php
	//ファイル一覧表示
	if ($dir = opendir("../upload_files")) {//ディレクトリ名
			while (($file = readdir($dir)) !== false) {
					if ($file != "." && $file != "..") {
						echo '<li><a href="../upload_files/' . $file . '" target="_blank">' . $file . '</a><br /></li>';
					}
			} 
			closedir($dir);
	}
	?>

]]>
http://121.50.42.205/note/%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e5%86%85%e3%81%ae%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e4%b8%80%e6%8b%ac%e5%89%8a%e9%99%a4_242/feed 0
ファイルのアップロード http://121.50.42.205/note/%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%ae%e3%82%a2%e3%83%83%e3%83%97%e3%83%ad%e3%83%bc%e3%83%89_233 http://121.50.42.205/note/%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%ae%e3%82%a2%e3%83%83%e3%83%97%e3%83%ad%e3%83%bc%e3%83%89_233#comments Sat, 02 Jul 2011 03:48:52 +0000 admin http://phono.co.jp/note/?p=233 説明

ファイルを日付時分にリネームしてアップロードします。
一番最後のドットだけをファイルタイプの判断材料にすることでファイル名にドットが幾つもある場合でも正確な判断をします。
inputエリアの「クリア」ボタンはおまけ。
アップしたファイルを一括削除するスクリプトもあります。

ソース

入力

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>ファイルのアップロード</title> 
<!-- クリアボタン -->
<script type="text/javascript">
function sample(oId){
	var obj = document.getElementById(oId);
	var stO = obj.innerHTML;
	obj.innerHTML = stO;
}
</script>
<!-- /クリアボタン -->
</head>
<body>

<form name="UserSend" action="confirm.php" method="post" enctype="multipart/form-data">

<p>
	アップロード
</p>
<p  id="CLEARINPUT">
	<input type="file" size="40" name="upfile" value="" maxlength=""> <input type="button" value="クリア" onclick="sample('CLEARINPUT')">
</p>
<p>
	<input type="submit" name="" value="アップロードする">
</p>

</form> 

</body> 
</html>

確認&アップロード

アップロード先のディレクトリは「./upload_files」とする

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>ファイルのアップロード</title> 
</head>
<body>

<p>
	<?php
	$updir = "./upload_files";
	$tmp_file = @$_FILES['upfile']['tmp_name'];
	$file_kakutyoshi = substr(strrchr(@$_FILES['upfile']['name'], '.'), 1);//最後のドットだけを判断し拡張子を取り出す(これによりファイル名にドットがある場合でもOK)
	@list($file_name,$file_type) = explode(".",@$_FILES['upfile']['name']);//ファイル名を取り出す(拡張子とファイル名をドットで区切って判断している)
	$copy_file = date("Ymd-His") . "." . $file_kakutyoshi;//ファイル名と拡張子を繋げる
	if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) {
		if (move_uploaded_file($tmp_file,"$updir/$copy_file")) {
		//if($file_kakutyoshi =="") {//ファイル拡張子が取得出来なかった場合はファイルがアップされていないものと見なす
			chmod("upload_files/" . $_FILES["upfile"]["name"], 0644);
			echo $_FILES["upfile"]["name"] . "をアップロードしました。<br />";
			echo "(※アップロードしたファイルは <a href=\"" . $updir . "/" . $copy_file . "\" target=\"_blank\">こちら</a> から確認できます。)";
		} else {
			echo "ファイルをアップロードできませんでした。";
		}
	} else {
		echo "<span class=\"fcb fwb\" style=\"font-size:14px;\">ファイルが選択されていません。</span>";
	}
	?>
</p>


</body> 
</html>
]]>
http://121.50.42.205/note/%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%ae%e3%82%a2%e3%83%83%e3%83%97%e3%83%ad%e3%83%bc%e3%83%89_233/feed 0