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

PHP

更新履歴

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

はじめに

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

ファイルのコピー

ファイルのコピーはcopy()関数を使用します。
サンプルプログラムは次を見てください。

<?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";

    // 元ファイルの表示
    $org_file = "data/original.txt";
    echo "コピー元ファイルの表示:${org_file}:\n<br>";
    output_file($org_file);
    echo "\n<br>";

    // ファイルのコピー
    $copy_file = "data/output/data01.txt";
    echo "ファイルのコピー コピー先のファイル:${copy_file}:<br>\n";
    copy($org_file, $copy_file);
    echo "コピー先のファイル表示:${copy_file}:<br>\n";
    output_file($copy_file);
    echo "\n<br>";

    // ファイルコピーのエラー処理
    echo "ファイルコピーのエラー処理の確認<br>\n";
    $org_file2 = "data/dummy.txt";
    $copy_file = "data/output/data02.txt";

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

    $return = @copy($org_file2, $copy_file);
    if($return === false) {
        echo "ファイルのコピーに失敗しました。<br>\n";
    }

    // コード中に作成したファイルの削除
    for($i = 1; $i < 11; $i++) {
        $filename = "data/output/data" . sprintf("%02d", $i) . ".txt";
        if(file_exists($filename)) {
            unlink($filename);
        }
    }
?>

実行結果です。

・画面

・HTML

ファイル名:sample02_08_11.php<br>
【PHP】ファイルのコピー<br>
コピー元ファイルの表示:data/original.txt:
<br>ハローワールド
<br>
hello world<br>

<br>ファイルのコピー コピー先のファイル:data/output/data01.txt:<br>
コピー先のファイル表示:data/output/data01.txt:<br>
ハローワールド
<br>
hello world<br>

<br>ファイルコピーのエラー処理の確認<br>
コピー元ファイル:data/dummy.txtは存在しません。<br>
ファイルのコピーに失敗しました。<br>

ファイル削除

ファイル削除はunlink()関数を使用します。
関数を使用したサンプルプログラムは次を見てください。

<?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/delete01.txt";
    touch($filename);

    // 存在するファイルの削除
    echo "${filename}を削除します<br>\n";
    unlink($filename);


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

    // unlink()はディレクトリの削除も可能?

    // 存在しないファイルの削除
    $filename2 = "data/delete02.txt";
    echo "存在しないファイル:${filename2}の削除<br>\n";
    if(! file_exists($filename2)) {
        echo "ファイル:${filename2}は存在しません。<br>\n";
    }

    $return = @unlink($filename2);
    if($return === false) {
        echo "ファイルの削除に失敗しました。<br>\n";
    }
?>

実行結果です。

・画面

・HTML

ファイル名:sample02_08_12.php<br>
【PHP】ファイルの削除<br>
data/delete01.txtを削除します<br>
ファイル:data/delete01.txtの存在確認<br>
ファイル:data/delete01.txtは存在しません。<br>
<br>
存在しないファイル:data/delete02.txtの削除<br>
ファイル:data/delete02.txtは存在しません。<br>
ファイルの削除に失敗しました。<br>

コメント