This was originally posted to php-general, but for some reason I believe
it may belong here.  I apologize if I'm wrong.

Forgive me for my ignorance, but I've noticed some unwanted behavior
(IMO, at least) with the is_link() function.  Given the simple code..

        if ( is_link ("/tmp/this_is_a_symlink") )
                print ("Success\n");

and the file..
        lrwxrwxrwx 1 root root 5 Apr 23 21:19 /tmp/this_is_a_symlink -> /bin/
the above obviously prints 'Success\n'.

However, if I BREAK the symlink, with something like the following..
        lrwxrwxrwx 1 root root 4 Apr 23 21:21 /tmp/this_is_a_symlink -> foo
the script fails with..

Warning: stat failed for /tmp/this_is_a_symlink (errno=2 - No such file or
directory) in ./test.php on line 3.

The file /tmp/this_is_a_symlink is still a symlink, so it seems to me that
the is_link() function should still return true, whether or not the symlink's
target exists.  Is there perhaps a function I have yet to discover that
provides that behavior, without verifying the link's target?

I ask this because much of linux's /proc contains (intentionally) broken
symlink's and is_link()'s behavior is making the scouring of /proc
difficult on me.  ;)

Thanks for any input..
J. Jones

P.S.  The script ran as root, so filesystem permissions aren't the issue.

PHP Development Mailing List <>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to