symlink

関数の概要

PHPの symlink 関数は、指定したターゲット(元ファイルやディレクトリ)に対してシンボリックリンク(シンボリックなショートカット)を作成します。シンボリックリンクはファイルシステム上の別の場所にあるファイルやフォルダへリンクを作ることで、元の場所とは別のパスから同じ内容にアクセス可能にします。

パラメータの説明

  • target:リンク先となる実際のファイルやディレクトリのパスを指定します。
  • link:作成するシンボリックリンクのパスを指定します。ここにリンクファイルが作られます。

戻り値

リンクの作成に成功した場合は true を返し、失敗した場合は false を返します。失敗の原因には、権限不足やパスの存在しないターゲット指定などがあります。

使用例

基本的な使い方

<?php
$target = '/var/www/html/original.txt';
$link = '/var/www/html/link_to_original.txt';

if (symlink($target, $link)) {
    echo "シンボリックリンクを作成しました。";
} else {
    echo "シンボリックリンクの作成に失敗しました。";
}
?>

この例では、original.txt というファイルへのシンボリックリンクを link_to_original.txt という名前で作成しています。

ディレクトリに対するシンボリックリンク作成

<?php
$targetDir = '/var/www/html/myfolder';
$linkDir = '/var/www/html/link_to_folder';

if (symlink($targetDir, $linkDir)) {
    echo "ディレクトリへのシンボリックリンクを作成しました。";
} else {
    echo "シンボリックリンクの作成に失敗しました。";
}
?>

ファイルだけでなく、ディレクトリに対してもシンボリックリンクが作成できます。フォルダごとリンクさせたい場合に便利です。

相対パスを使ったリンク作成

<?php
$target = 'assets/images/logo.png';
$link = 'public_html/logo_link.png';

if (symlink($target, $link)) {
    echo "相対パスでのシンボリックリンクが作成されました。";
} else {
    echo "シンボリックリンクの作成に失敗しました。";
}
?>

絶対パスだけでなく相対パスも使えます。ファイル構成や公開用ディレクトリの管理に役立ちます。

関連する関数

  • link – ハードリンクを作成する関数
  • readlink – シンボリックリンクのターゲットを取得する関数
  • unlink – ファイルやリンクの削除に使う関数
  • file_exists – ファイルやリンクが存在するか確認する関数

まとめ

PHPの symlink 関数は、ファイルやディレクトリに対して柔軟にシンボリックリンクを作成できる便利な関数です。ウェブアプリケーションのファイル管理を効率化したい場合や、同じリソースを複数パスから扱いたい場合に役立ちます。累積的に権限設定に注意しながら利用しましょう。