【PHP】これで分かる関数! – ファイル操作その6 –

PHP

更新履歴

更新日更新者更新内容
2021/8/24JJI・サンプルプログラムの実行結果に画面の画像を追加

はじめに

この記事で載せているサンプルプログラムは次の記事で紹介する関数を使用している場合があります。

ファイル移動・ファイル名変更

ファイル移動・ファイル名変更はrename()関数を使用します。
この関数を使用したサンプルプログラムは次を見てください。

ファイル移動

ファイル移動のサンプルプログラムです。

<?php
    // 引数の値への厳密な型付け
    declare(strict_types = 1);
    // 共通ライブラリの読み込み
    require_once __DIR__ . "../../../lib/sample_common.php";
    require_once __DIR__ . "./../sample2_8_1/lib/sample_file.php";

    echo "ファイル名:" . basename(__FILE__) . "<br>\n";
    echo "【PHP】ファイルの移動<br>\n";

    // 変更対象ファイルの作成
    $filename = "data/name03.txt";
    $renamefile = "data/output/name03.txt";
    touch($filename);

    // ファイルの移動
    $destdir = dirname($renamefile);
    echo "${filename}を${destdir}に移動します<br>\n";
    rename($filename, $renamefile);

    echo "ファイル:${filename}の存在確認<br>\n";
    if(! file_exists($filename)) {
        echo "ファイル:${filename}は存在しません。<br>\n";
    }

    echo "ファイル:${renamefile}の存在確認<br>\n";
    if(file_exists($renamefile)) {
        echo "ファイル:${renamefile}は存在します。<br>\n";
    }

    unlink($renamefile);
    echo "<br>\n";

    // 存在しないディレクトリへの移動
    echo "存在しないディレクトリへの移動<br>\n";
    $filename2 = "data/name04.txt";
    $renamefile2 = "data/nodir/name04.txt";
    touch($filename2);

    // ファイルの移動
    $destdir = dirname($renamefile2);
    echo "${filename2}を${destdir}に移動します<br>\n";
    $return = @rename($filename2, $renamefile2);

    if($return === false) {
        echo "ファイル:${filename2}は${destdir}に移動できません。<br>\n";
    }

    unlink($filename2);
?>

実行結果です。

・画面

・HTML

ファイル名:sample02_08_14.php<br>
【PHP】ファイルの移動<br>
data/name03.txtをdata/outputに移動します<br>
ファイル:data/name03.txtの存在確認<br>
ファイル:data/name03.txtは存在しません。<br>
ファイル:data/output/name03.txtの存在確認<br>
ファイル:data/output/name03.txtは存在します。<br>
<br>
存在しないディレクトリへの移動<br>
data/name04.txtをdata/nodirに移動します<br>
ファイル:data/name04.txtはdata/nodirに移動できません。<br>

ファイル名変更

ファイル名変更のサンプルプログラムです。

<?php
    // 引数の値への厳密な型付け
    declare(strict_types = 1);
    // 共通ライブラリの読み込み
    require_once __DIR__ . "../../../lib/sample_common.php";
    require_once __DIR__ . "./../sample2_8_1/lib/sample_file.php";

    echo "ファイル名:" . basename(__FILE__) . "<br>\n";
    echo "【PHP】ファイル名の変更<br>\n";

    // 変更対象ファイルの作成
    $filename = "data/name01.txt";
    $renamefile = "data/rename001.txt";
    touch($filename);

    // ファイル名の変更
    echo "${filename}のファイル名を${renamefile}に変更します<br>\n";
    rename($filename, $renamefile);

    echo "ファイル:${filename}の存在確認<br>\n";
    if(! file_exists($filename)) {
        echo "ファイル:${filename}は存在しません。<br>\n";
    }

    echo "ファイル:${renamefile}の存在確認<br>\n";
    if(file_exists($renamefile)) {
        echo "ファイル:${renamefile}は存在します。<br>\n";
    }
    echo "<br>\n";

    unlink($renamefile);

    // 存在しないファイル名の変更
    $filename2 = "data/noname01.txt";
    $renamefile2 = "data/rename002.txt";

    echo "ファイル:${filename2}の存在確認<br>\n";
    if(! file_exists($filename2)) {
        echo "ファイル:${filename2}は存在しません。<br>\n";
    }

    $return = @rename($filename2, $renamefile2);
    if($return === false) {
        echo "ファイル:${filename2}のリネームに失敗しました。<br>\n";
    }
?>

実行結果です。

・画面

・HTML

ファイル名:sample02_08_13.php<br>
【PHP】ファイル名の変更<br>
data/name01.txtのファイル名をdata/rename001.txtに変更します<br>
ファイル:data/name01.txtの存在確認<br>
ファイル:data/name01.txtは存在しません。<br>
ファイル:data/rename001.txtの存在確認<br>
ファイル:data/rename001.txtは存在します。<br>
<br>
ファイル:data/noname01.txtの存在確認<br>
ファイル:data/noname01.txtは存在しません。<br>
ファイル:data/noname01.txtのリネームに失敗しました。<br>

コメント