Penggunaan fungsi READLINK pada PHP

Reviewed by Sutiono S.Kom., M.Kom., M.T.I

by Hanifah Nurbaeti December 1, 2020

by Hanifah Nurbaeti December 1, 2020

Contoh
Dapatkan target tautan simbolis:

<?php
echo readlink("/user/testlink");
?>

Section Artikel

  • 1 Definisi dan Penggunaan
  • 2 Syntax
  • 3 Nilai Parameter
  • 4 Detail Teknis

Definisi dan Penggunaan

Fungsi readlink() dapat digunakan untuk mengembalikan target dari tautan simbolik.

Syntax

readlink(linkpath)

Nilai Parameter

ParameterDeskripsi
linkpath Required. Menentukan jalur link untuk diperiksa

Detail Teknis

Return Value:Target link sukses, FALSE jika gagal
PHP Version:4.0+
PHP Changelog:PHP 5.3: readlink() sekarang tersedia di platform Windows

filesystemphp

Hanifah Nurbaeti

previous post

Fungsi realpath_cache_size() PHP

next post

Fungsi readfile() PHP

You may also like

Codeigniter vs Laravel : Apa Perbedaannya? Simak Penjelasannya

March 23, 2021

Perbedaan Error Handling Pada PHP: die () Vs...

March 19, 2021

PHP 8 Rilis : Kenalan Dengan Fitur Utama...

February 8, 2021

Tipe Data Dalam Bahasa Pemrograman PHP

January 18, 2021

Referensi Timezone Pada PHP

December 30, 2020

Fungsi Zip zip_read() Pada PHP

December 30, 2020

Fungsi Zip zip_open() Pada PHP

December 30, 2020

Fungsi Zip zip_entry_read() Pada PHP

December 30, 2020

Fungsi Zip zip_entry_open() Pada PHP

December 30, 2020

Fungsi Zip zip_entry_name() Pada PHP

December 30, 2020

Contoh
Buat tautan simbolis:

<?php
$target = "downloads.php";
$link = "downloads";
symlink($target, $link);
echo readlink($link);
?>

Definisi dan Penggunaan

Fungsi symlink() digunakan untuk membuat tautan simbolis dari target yang ada dengan tautan nama yang ditentukan.

Catatan: Ini bukan link HTML, tetapi link di sistem file.

Syntax

symlink(target, link)

Nilai Parameter

ParameterDeskripsi
target Required. Menentukan target link
link Required. Menentukan nama link

Detail Teknis

Return Value:TRUE jika sukses dan FALSE jika gagal
PHP Version:4.0+
PHP Changelog:PHP 5.3: Tersedia di platform Windows

(PHP 4, PHP 5, PHP 7, PHP 8)

readlinkReturns the target of a symbolic link

Description

readlink(string $path): string|false

Parameters

path

The symbolic link path.

Return Values

Returns the contents of the symbolic link path or false on error.

Note: The function fails if path is not a symlink, except on Windows, where the normalized path will be returned.

Examples

Example #1 readlink() example

<?php// output e.g. /boot/vmlinux-2.4.20-xfs
echo readlink('/vmlinuz');?>

See Also

  • is_link() - Tells whether the filename is a symbolic link
  • symlink() - Creates a symbolic link
  • linkinfo() - Gets information about a link

MarkAndrewSlade at gmail dot com

13 years ago

This will trigger a warning and return false if you pass it a non-symlink.  If the file doesn't exist, it will trigger a differently worded warning.

mslade@jupiter ~$ touch a
mslade@jupiter ~$ ln -s a b
mslade@jupiter ~$ ls -l {a,b}
-rw------- 1 mslade mslade 0 2009-06-10 15:27 a
lrwxrwxrwx 1 mslade mslade 1 2009-06-10 15:27 b -> a
mslade@jupiter ~$ php -r "var_dump(readlink('b'));"
string(1) "a"
mslade@jupiter ~$ php -r "var_dump(readlink('a'));"

Warning: readlink(): Invalid argument in Command line code on line 1
bool(false)
mslade@jupiter ~$ php -r "var_dump(readlink('c'));"

Warning: readlink(): No such file or directory in Command line code on line 1
bool(false)

casinero dot triste at OH_NO_SPAM dot gmail dot com

5 years ago

A little function to readlink TO THE END:
(realpath can't do this if the symlink (ultimately) points to a non-existing path, since it just returns false in this case.)

function readlinkToEnd($linkFilename) {
  if(!is_link($linkFilename)) return $linkFilename;
  $final = $linkFilename;
  while(true) {
    $target = readlink($final);
    if(substr($target, 0, 1)=='/') $final = $target;
    else $final = dirname($final).'/'.$target;
    if(substr($final, 0, 2)=='./') $final = substr($final, 2);
    if(!is_link($final)) return $final;
  }
}

casinero dot triste at OH_NO_SPAM dot gmail dot com

5 years ago

A little function to readlink TO THE END:
(realpath can't do this if the symlink (ultimately) points to a non-existing path, since it just returns false in this case.)

function readlinkToEnd($linkFilename) {
  if(!is_link($linkFilename)) return $linkFilename;
  $final = $linkFilename;
  while(true) {
    $target = readlink($final);
    if(substr($target, 0, 1)=='/') $final = $target;
    else $final = dirname($final).'/'.$target;
    if(substr($final, 0, 2)=='./') $final = substr($final, 2);
    if(!is_link($final)) return $final;
  }
}

ayon at hyurl dot com

5 years ago

It is neccesary to be notified that readlink only works for a real link file, if this link file locates to a directory, you cannot detect and read its contents, the is_link() function will always return false and readlink() will display a warning is you try to do. Like the following codes:
<?php
//assume that A is a directory located in C:, B is a symlink to A, and A contents a file named C.
echo is_link('B/C'); //false
echo readlink('B/C'); //false and a warning will be displayed
//instead, you should use realpath() function to get the real path of C
echo realpath('B/C'); //C:\A\C
?>