こんにちは!
ナビゲータのEVEです。
1月から、functionで定義した通常の関数をオブジェクト指向プログラミングに書き換えています。
そんな作業の最中、新たな試みをしています。
昨日から、不足しているクラスをChatGPTに作ってもらっています。作ってもらっているといっても、機能を説明して、その機能のプログラムを作ってもらっているレベルなのですが・・・。
[zipの圧縮関数がない!]
昨日から、ファイルクラスの製造に入っています。ただ、Prototype EVEではファイル関連という扱いだった関数が、EVEシステムではオブジェクト指向プログラミングにする都合上、ファイル、データ、アップロードと、かなりクラスごとに細分化されることになりました。
その中に、zipファイルを解凍するクラスがったのですが、圧縮する関数がない・・・。理由は、OSのコマンドをプログラム内で直接実行しているから・・・。だけど、EVEシステムではそんな変則的なことはせず、PHPプログラムで実行できることはすべてPHPで実行します。そのため、新たにプログラムを製造しようとしたのですが、いろいろやることある中、これから、調べるのはめんどくさいということで、ChatGPTに以下のようなお願いをしました。
PHPでファイルを、zipファイルで圧縮する方法について例示してください。
今読むと日本語が変・・・。それはさておき、以上のようなお願いに対して、ChatGPTは以下のようなプログラムを作ってくれました。
<?php
// 圧縮するファイル
$files = array(
'file1.txt',
'file2.txt',
'file3.txt'
);
// 新しいZipファイルの名前
$zipName = 'compressed_files.zip';
// ZipArchiveのインスタンスを作成
$zip = new ZipArchive();
// 新しいZipファイルを作成し、開く
if ($zip->open($zipName, ZipArchive::CREATE) === TRUE) {
// 各ファイルをZipに追加
foreach ($files as $file) {
// 追加するファイルのパスを指定
$filePath = __DIR__ . '/' . $file;
// ファイルが存在するか確認してから追加
if (file_exists($filePath)) {
// 第2引数には、Zipファイルに追加する際のファイル名を指定
$zip->addFile($filePath, $file);
} else {
echo "ファイルが見つかりません: $file";
}
}
// Zipファイルを閉じるM
$zip->close();
echo "ファイルが圧縮されました: $zipName";
} else {
echo "Zipファイルを作成できません";
}
?>
日本語が変にもかかわらず、ChatGPTは気を利かせて、1ファイルを圧縮するぐらいにしか考えていなかったお願いに対して、複数のファイルをzipファイルへ圧縮するプログラムを例示してくれました。。
今回は、クラスへメソッドとして追加するという目的で、プログラムの作成をお願いしたのですが、このロジックで十分です。
あとは、このロジックを解析しながら、クラスにメソッドとして取り込むだけです。
短い質問で、効率的にプログラムを作ることができました。
[あとがき]
プログラミングの一部をChatGPTへお願いしたことにより、これから、クラスの製造は速くなりそうです。ただ、もっと複雑なことをさせたい!!!だけど、どうお願いしたらいいのか分からない???
これから、日々使い方を研究し、作業効率を上げていきたいと思います。
では、また!!!
【このカテゴリーの最新記事】