【PHP8.x】symlink関数の使い方

作成日: 更新日:

symlink関数は、指定されたtarget(目標)ファイルまたはディレクトリへのシンボリックリンク(ソフトリンクとも呼ばれます)を作成する関数です。シンボリックリンクとは、実際のファイルやディレクトリとは別に、それを指し示すための「ショートカット」のようなものです。これにより、あたかもリンク先のファイルがそこにあるかのように扱えますが、実体は別の場所に存在します。

この関数は、リンク元となるtargetのパスと、新しく作成するシンボリックリンクのパスlinkの、二つの引数を必要とします。例えば、/path/to/original.txtというファイルに対して/var/www/shortcut.txtというシンボリックリンクを作成すると、/var/www/shortcut.txtにアクセスした際に、実際には/path/to/original.txtの内容が読み込まれるようになります。

targetで指定したファイルやディレクトリが実際に存在しない場合でも、シンボリックリンク自体は作成できますが、そのリンクにアクセスしようとするとファイルが見つからないといったエラーが発生します。また、linkで指定したパスに既にファイルやディレクトリが存在する場合、シンボリックリンクの作成は失敗し、既存のものは上書きされません。

シンボリックリンクを作成するには、PHPが実行されているユーザーに必要なファイルシステムへの書き込み権限が必要です。特にWindows環境では、PHP 5.3以降で管理者権限を必要とする場合があるため、注意が必要です。関数が成功した場合はtrueを、失敗した場合はfalseを返します。失敗時には、error_get_last()関数などを利用して詳細なエラー情報を確認することができます。

基本的な使い方

構文(syntax)

<?php
$existingSourcePath = 'path/to/your/actual_file_or_directory';
$newSymbolicLinkPath = 'path/to/your/new_link_name';

$isLinkCreated = symlink($existingSourcePath, $newSymbolicLinkPath);
?>

引数(parameters)

string $target, string $link

PHP:

  • string $target: リンク元となるファイルまたはディレクトリのパス
  • string $link: 作成するシンボリックリンクのパス

戻り値(return)

bool

シンボリックリンクの作成に成功した場合は true を、失敗した場合は false を返します。

【PHP8.x】symlink関数の使い方 | いっしー@Webエンジニア