Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
PHP: is_link - Manual
[go: Go Back, main page]

PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

is_readable" width="11" height="7"/> <is_file
Last updated: Sun, 25 Nov 2007

view this page in



is_readable" width="11" height="7"/> <is_file
Last updated: Sun, 25 Nov 2007
 
add a note add a note User Contributed Notes
is_link
neverpanic->gmail[com]
30-Dec-2006 07:50
For me (Debian Sarge VPS) is_link returns true even for directories if you don't add a trailing slash to the filename.
<?php
if ($dir{strlen($dir)-1} == '/') $dir = substr($dir, 0, -1);
is_link($dir);
?>
This works for me. It can't detect a symlink somewhere in a complete path, though (i.e. is_link(/www/somedir/file.php) will return false, just as is_link(/www/) would)
brendy at gmail dot com
06-May-2006 11:22
On Mac OSX, to see if a file is a FInder alias:

<?PHP
if( getFinderAlias( $someFile , $target ) ) {
 echo
$target;
}
else {
 echo
"File is not an alias";
}

function
getFinderAlias( $filename , &$target ) {
$getAliasTarget = <<< HEREDOC
    -- BEGIN APPLESCRIPT --
    set checkFileStr to "
{$filename}"
    set checkFile to checkFileStr as POSIX file
    try
        tell application "Finder"
            if original item of file checkFile exists then
                set targetFile to (original item of file checkFile) as alias
                set posTargetFile to POSIX path of targetFile as text
                get posTargetFile
            end if
        end tell
    end try
    -- END APPLESCRIPT --
HEREDOC;
$runText = "osascript << EOS\n{$getAliasTarget}\nEOS\n";
$target = trim( shell_exec( $runText ) );
return (
$target == "" ? false : true );
}
?>
jr at cnb dot uam dot es
31-May-2005 03:31
Why don't you just try

is_dir("$pathname/.")

instead?

If $pathname is a directory, $pathname/. is itself and is a directory too.

If $pathname is a link to a directory, then $pathname/. is the actual directory pointed at and is a directory as well.

If $pathname is a link to a non-directory, then $pathname/. does not exist and returns FALSE, as it should.

A lot easier, more readable and intuitive.
andudi at gmx dot ch
03-Jun-2002 02:44
On my SuSE 7.2 is_link does not work on directories, but to find out, if a dir is a link, I use now this:

$linkdir = $path.$linkdirname;
if (realpath($linkdir) != realpath($path)."/".$linkdirname):
//$linkdir is a symbolic linked dir!
...

and this works fine :-)

Andreas Dick
aris at riponce dot com
27-Mar-2001 07:27
If you test a symbolic (soft) link with is_file() it will return true. Either use filetype() which always returns the correct type OR make sure that you FIRST test with is_link() before you do with is_file() to get the correct type.

is_readable" width="11" height="7"/> <is_file
Last updated: Sun, 25 Nov 2007
 
 
show source | credits | sitemap | contact | advertising | mirror sites