search for in the  
<fgetssfile_get_contents>
Last updated: Thu, 19 May 2005

file_exists

(PHP 3, PHP 4, PHP 5)

file_exists -- Checks whether a file or directory exists

Description

bool file_exists ( string filename )

Returns TRUE if the file or directory specified by filename exists; FALSE otherwise.

On windows, use //computername/share/filename or \\computername\share\filename to check files on network shares.

Example 1. Testing whether a file exists

<?php
$filename
= '/path/to/foo.txt';

if (
file_exists($filename)) {
   echo
"The file $filename exists";
} else {
   echo
"The file $filename does not exist";
}
?>

Note: The results of this function are cached. See clearstatcache() for more details.

Tip: As of PHP 5.0.0 this function can also be used with some URL wrappers. Refer to Appendix L for a listing of which wrappers support stat() family of functionality.

Warning

This function returns FALSE for files inaccessible due to safe mode restrictions. However these files still can be included if they are located in safe_mode_include_dir.

See also is_readable(), is_writable(), is_file() and file().



User Contributed Notes
file_exists
joe dot knall at gmx dot net
15-Mar-2005 05:59
concerning file_exists and safe_mode:
if safe_mode=ON and $file (in safe_mode_include_dir) is not owned by the user who executes file_exists($file), file_exists returns FALSE but still $file can be included;
I could handle this by setting safe_mode_gid=On and appropriate group-ownership
07-Mar-2005 04:00
Nathaniel, you should read the manual carefuly next time prior to posting anything here, as all you indicated is the fact you missed the idea of the include_path. To remind - include_path is for some functions only, mainly intended for include and require to simpify include/require operations (kinda way the #include works). It is NOT for any filesystem function, which would be damn annoying than helpful, which is quite understandable and obvious.
andrewNOSPAMPLEASE at abcd dot NOSPAMERSca
11-Feb-2005 07:29
file_exists will have trouble finding your file if the file permissions are not read enabled for 'other' when not owned by your php user. I thought I was having trouble with a directory name having a space in it (/users/andrew/Pictures/iPhoto Library/AlbumData.xml) but the reality was that there weren't read permissions on Pictures, iPhoto Library or AlbumData.xml. Once I fixed that, file_exists worked.
Nathaniel
08-Feb-2005 11:08
I spent the last two hours wondering what was wrong with my if statement: file_exists($file) was returning false, however I could call include($file) with no problem.

It turns out that I didn't realize that the php include_path value I had set in the .htaccess file didn't carry over to file_exists, is_file, etc.

Thus:

<?PHP
// .htaccess php_value include_path '/home/user/public_html/';

// includes lies in /home/user/public_html/includes/

//doesn't work, file_exists returns false
if ( file_exists('includes/config.php') )
{
     include(
'includes/config.php');
}

//does work, file_exists returns true
if ( file_exists('/home/user/public_html/includes/config.php') )
{
   include(
'includes/config.php');
}
?>

Just goes to show that "shortcuts for simplicity" like setting the include_path in .htaccess can just cause more grief in the long run.
ceo at l-i-e dot com
02-Dec-2004 05:44
Prior to 4.3.2, and 4.3.3 with open_basedir, this function generated an error/warning message when the file/directory in question did not exist.
aidan at php dot net
10-Apr-2004 11:46
If you'd like to check if a file exists anywhere your include path, have a look at this function:

http://aidan.dotgeek.org/lib/?file=function.file_exists_incpath.php
alex at raynor nospam dot ru
05-Apr-2004 10:16
If you use open_basedir in php.ini and use file_exists for file outside open_basedir path, you will not be warned at log and file_exists returns false even if file really exists.
11-Feb-2004 08:32
On nix systems file_exists will report a link that doesn't point to a valid file as non-existant, ie: the link itself exists but the file it points to does not.  Using is_link will report true whether the link points to a valid file or not.

<fgetssfile_get_contents>
 Last updated: Thu, 19 May 2005
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: The Server Pages
Last updated: Thu May 19 17:35:34 2005 CDT