link

関数の概要

PHPの link 関数は、既存のファイルのハードリンクを新たに作成するための関数です。ハードリンクとは、複数のファイル名が同じファイルデータを参照する仕組みで、オリジナルファイルと同じ内容を指し示します。この関数を使うことで、同じファイルデータに複数の異なる名前を付けることが可能です。主にファイル操作やバックアップなどで役立ちます。

パラメータの説明

  • target:リンク元となる既存のファイルのパス(文字列)。このファイルが存在していなければなりません。
  • link:新しく作成するハードリンクのパス(文字列)。この名前で新しいリンクファイルが作成されます。

戻り値

成功した場合は true、失敗した場合は false を返します。失敗する理由としては、指定した元ファイルが存在しない、リンク名の場所に書き込み権限がない、ファイルシステムがハードリンクをサポートしていない等が考えられます。

使用例

基本的な使い方

$result = link('original.txt', 'hardlink.txt');
if ($result) {
    echo 'ハードリンクが作成されました。';
} else {
    echo 'ハードリンクの作成に失敗しました。';
}

上記の例では、’original.txt’ のハードリンクとして ‘hardlink.txt’ を作成しています。成功すればメッセージが表示されます。

存在確認を行ってからハードリンクを作成する例

if (file_exists('original.txt')) {
    if (link('original.txt', 'hardlink.txt')) {
        echo 'リンク作成成功';
    } else {
        echo 'リンク作成失敗';
    }
} else {
    echo '元ファイルが存在しません。';
}

ファイルが存在するかどうかをチェックしてからハードリンクを作成する方法です。エラーを未然に防げます。

ファイルサイズを比較して同一かどうか確認する例

link('data.csv', 'backup.csv');
if (filesize('data.csv') === filesize('backup.csv')) {
    echo 'ハードリンクの作成とファイルサイズの確認ができました。';
}

ハードリンクが成功したあとは、元ファイルとリンク先のファイルサイズを比較して同じであることを確認しています。

関連する関数

  • symlink — シンボリックリンク(ソフトリンク)を作成します
  • unlink — ファイルやリンクを削除します
  • file_exists — ファイルの存在を確認します
  • filesize — ファイルサイズを取得します

まとめ

PHPの link 関数は、OSがサポートしている環境で簡単にハードリンクを作成できる便利な関数です。ハードリンクは同じファイル内容を複数の名前で参照できるため、バックアップやファイル管理に有効です。使用する際は元ファイルの存在や権限に注意し、必要に応じてエラーチェックを行うことが重要です。