現在の言語: 日本語 |
リネームしたファイルを指定の場所にコピーする処理 |
ファイル関連 |
$input_dir = '../img/';
$output_dir = '../img/out/';
copyFileIdRule($input_dir, $output_dir);
//nocopy:コピーの有無
//0:コピーしない
//1:コピーする
function copyFileIdRule(string $input_dir, string $output_dir, $nocopy=0)
{
$filename="";//取得したファイル名
$fileId="";//ファイルID
$ext="";//拡張子
$tmp1="";
$tmp2="";
$ary=[];
$no=[];
$list=[];
// 保存先フォルダがなければ作成する
if (!is_dir($output_dir))
{
mkdir($output_dir, 0755, true);
}
//xxx_001_name1.png
//拡張子とそれ以外に分ける
//_でsplitする
//最初に2個をファイル名にして_で結合する
//残りの文字列(2個目の_から.までの文字列)を分離して変数にして後で出力する
$files = scandir($input_dir);
$index = 0;
foreach($files as $file)
{
// . : カレントディレクトリ
// .. : 親ディレクトリ
if($file === "." || $file === "..") continue;
//フォルダは対象外としています
if(is_dir($input_dir . $file)) continue;
//macのケース
if($file === ".DS_Store") continue;
$index++;
$filename = $file;
$ary = explode("_", $file);
$info=pathinfo($filename);
$filename=$info["filename"];//ファイルID
$ext=$info['extension'];//拡張子
//最後のアンダースコアで分割します
//ex.)
//$filename:
//aaa_bbb_xxx
$lastPos = strrpos($filename, "_");
$tmp1 = substr($filename, 0, $lastPos); // "aaa_bbb"
$tmp2 = substr($filename, $lastPos + 1); // "xxx"
$fileId = $tmp1 . "." . $ext; // "aaa_bbb.png"
$no[]=(string)$ary[1];
$list[]=$tmp2;
if($nocopy==1)
{
//ファイル存在チェックをしていないため
//上書きになります
if(copy($input_dir . $file, $output_dir . $fileId))
{
//コピーに成功しました
}
else
{
echo "copy fail i:$index filename:$file<br>";
}
}
}
//ファイル管理番号を表示
$count = count($no);
for($i=0;$i < $count;++$i)
{
echo $no[$i]."<br>";
}
echo "<hr>";
//リストを表示
$count = count($list);
for($i=0;$i < $count;++$i)
{
echo $list[$i]."<br>";
}
}
$input_dir = '../img/';
$output_dir = '../img/out/';
copyFileIdRule($input_dir, $output_dir);
//nocopy: Copy
//0: Do not copy
//1: Copy
function copyFileIdRule(string $input_dir, string $output_dir, $nocopy=0)
{
$filename=""; // Retrieved file name
$fileId=""; // File ID
$ext=""; // Extension
$tmp1="";
$tmp2="";
$ary=[];
$no=[];
$list=[];
// Create the destination folder if it does not exist
if (!is_dir($output_dir))
{
mkdir($output_dir, 0755, true);
}
/xxx_001_name1.png
// Separate the file name from the extension
// Split with _
// First, make the two strings into file names and join them with _
// Separate the remaining string (the string from the second _ to .) and save it as a variable to output later.
$files = scandir($input_dir);
$index = 0;
foreach($files as $file)
{
// . : Current directory
// .. : Parent directory
if($file === "." || $file === "..") continue;
// Folders are not included.
if(is_dir($input_dir . $file)) continue;
// Mac case
if($file === ".DS_Store") continue;
$index++;
$filename = $file;
$ary = explode("_", $file);
$info=pathinfo($filename);
$filename=$info["filename"]; // File ID
$ext=$info['extension']; // Extension
// Split at the last underscore
//Example)
//$filename:
//aaa_bbb_xxx
$lastPos = strrpos($filename, "_");
$tmp1 = substr($filename, 0, $lastPos); // "aaa_bbb"
$tmp2 = substr($filename, $lastPos + 1); // "xxx"
$fileId = $tmp1 . "." . $ext; // "aaa_bbb.png"
$no[]=(string)$ary[1];
$list[]=$tmp2;
if($nocopy==1)
{
//File existence check not performed
//Overwritten
if(copy($input_dir . $file, $output_dir . $fileId))
{
//Copy successful
}
else
{
echo "copy fail i:$index filename:$file<br>";
}
}
}
// Display the file control number
$count = count($no);
for($i=0;$i < $count;++$i)
{
echo $no[$i]."<br>";
}
echo "<hr>";
// Display the list
$count = count($list);
for($i=0;$i < $count;++$i)
{
echo $list[$i]."<br>";
}
}
| 著作権情報 |
| ホームページおよびアプリ等に掲載されている情報等については、いかなる保障もいたしません。 ホームページおよびアプリ等を通じて入手したいかなる情報も複製、販売、出版または使用させたり、 または公開したりすることはできません。 当方は、ホームページおよびアプリ等を利用したいかなる理由によっての障害等が発生しても、 その結果ホームページおよびアプリ等を利用された本人または他の第三者が被った損害について 一切の責任を負わないものとします。 |