PHPでファイル削除するunlink関数の使い方!

PHP

PHPでunlink関数を使って、ファイルを削除する方法について書いています。
載せているサンプルコードについては、PHPのバージョン8.1.8を使って検証しています。

公式のドキュメントはこちらになります。

unlink関数の使い方

unlink関数にファイルパスを渡すことで、指定したパスのファイルを削除することができます。
例えば、下記のように使うことができます。

<?php
$removeFilePath = "hello.txt";
$result = unlink($removeFilePath);

if ($result) {
    echo "削除しました。";
}

最初に$removeFilePath変数に削除したいファイルのパスを書いています。
今回はプログラムと同じ場所に置いている”hello.txt”ファイルを削除します。

次の処理でunlink関数を使っています。
渡しているのは削除したいファイルのパスです。

unlink関数を実行した後の結果を$result変数で受け取っています。
ファイルの削除に成功した場合はtrue、失敗した場合はfalseが返ってきます。

今回はif文で$result変数を確認して、削除したら「削除しました。」を出力するようにしました。
このようにファイルパスをunlink関数に渡すことで、ファイルを削除することが可能です。

引数と戻り値

unlink関数の引数と戻り値についてです。

引数

第1引数に削除したいファイルのファイルパスを渡します。
第2引数にはストリームコンテキストリソースを渡すことができます。

戻り値

削除に成功したときにtrue、削除に失敗するとfalseが返ってきます。

指定パスのファイルがないとき

指定したパスにファイルが既に存在しない場合には、下記のようにWarningが発生します。

PHP Warning: unlink(hello.txt): No such file or directory in /Users/yasuaki/php-test/fileRemove.php on line 7

Warningの発生を回避するためには、下記のようにis_file関数でファイルの存在を確認して削除しましょう。

<?php
$removeFilePath = "hello.txt";

if (is_file($removeFilePath)) {
    $result = unlink($removeFilePath);

    if ($result) {
        echo "削除しました。";
    }
}

絶対パス・相対パスどちらを渡すか?

unlink関数では絶対パス・相対パスのどちらを渡しても削除することが可能です。
例えば、下記のように絶対パスを渡して削除することも可能です。

<?php
$removeFilePath = "/Users/yasuaki/php-test/hello.txt";
$result = unlink($removeFilePath);

if ($result) {
    echo "削除しました。";
}

先ほどのプログラムを少し修正しました。
$removeFilePath変数のパスを絶対パスに変えました。こうすることでも削除できます。

また、相対パスはプログラムが実行されるカレントディレクトリからの相対パスになるので注意しましょう。

コメント

タイトルとURLをコピーしました