|
file_exists
Checks whether a file or directory exists
(PHP 4, PHP 5)
Example 629. Testing whether a file exists<?php Related Examples ( Source code ) » file_exists Examples ( Source code ) » Creating and Destroying a Directory Handle Examples ( Source code ) » Deleting a Directory by Using rmdir() Examples ( Source code ) » Reading Contents from a Directory Examples ( Source code ) » File existance Examples ( Source code ) » Checking That a File Exists Examples ( Source code ) » Is it a file Examples ( Source code ) » Is the file a directory Examples ( Source code ) » Is the file readable Examples ( Source code ) » Is the file writable Examples ( Source code ) » File changed time Examples ( Source code ) » File modified time Examples ( Source code ) » File accessed time Examples ( Source code ) » Determining the Size of a File Examples ( Source code ) » Get the file size Examples ( Source code ) » Is the file executable Code Examples / Notes » file_existsvladimir sokolov
Updated funtion url_exist It work right! http://www.bbc.co.uk/newsa/n5ctrl/progs/frost/latest.ram - (true) http://www.bbc.co.uk/newsa/n5ctrl/progs/frost/latest1.ram - (false) http://www.bbc.co.uk/newsa/n5ctrl/progs/frost1/latest.ram - (false) ----- <?php function url_exists($url) { $a_url = parse_url($url); if (!isset($a_url['port'])) $a_url['port'] = 80; $errno = 0; $errstr = ''; $timeout = 30; if(isset($a_url['host']) && $a_url['host']!=gethostbyname($a_url['host'])){ $fid = fsockopen($a_url['host'], $a_url['port'], $errno, $errstr, $timeout); if (!$fid) return false; $page = isset($a_url['path']) ?$a_url['path']:''; $page .= isset($a_url['query'])?'?'.$a_url['query']:''; fputs($fid, 'HEAD '.$page.' HTTP/1.0'."\r\n".'Host: '.$a_url['host']."\r\n\r\n"); $head = fread($fid, 4096); $head = substr($head,0,strpos($head, 'Connection: close')); fclose($fid); if (preg_match('#^HTTP/.*\s+[200|302]+\s#i', $head)) { $pos = strpos($head, 'Content-Type'); return $pos !== false; } } else { return false; } } ?> thuy
This solution works for me. Just need to fix a typo in the original post: $fileUrl = "http://www.examplecom/test.jpg"; $AgetHeaders = @get_headers($fileUrl); if (preg_match("|200|", $AgetHeaders[0])) { // file exists } else { // file doesn't exists } ------------------------------------------------------------- Posted by: florinel2k at yahoo dot com 13-Jun-2007 01:23 This is an example if you want to know that a file exists (if that file isn't on your server): $fileUrl = "http://www.examplecom/test.jpg"; $AgetHeaders = @get_headers($sourcePath); if (preg_match("|200|", $AgetHeaders[0])) { // file exists } else { // file doesn't exists } florinel2k
This is an example if you want to know that a file exists (if that file isn't on your server): $fileUrl = "http://www.examplecom/test.jpg"; $AgetHeaders = @get_headers($sourcePath); if (preg_match("|200|", $AgetHeaders[0])) { // file exists } else { // file doesn't exists } feshi
this code looks inocent <?php $filename=$_REQUEST["var"]; $filename .= ".data"; file_exist($filename){ include($filename); } ?> but if you pass something like script.php?var=test%00asbs it should really can do bad things like including accesslog files if you replace "test" with something like "../logs/accesslog" ihoss dot com
The following script checks if there is a file with the same name and adds _n to the end of the file name, where n increases. if img.jpg is on the server, it tries with img_0.jpg, checks if it is on the server and tries with img_1.jpg. <?php $img = "images/".$_FILES['bilde']['name']; $t=0; while(file_exists($img)){ $img = "images/".$_FILES['bilde']['name']; $img=substr($img,0,strpos($img,"."))."_$t".strstr($img,"."); $t++; } move_uploaded_file($_FILES['bilde']['tmp_name'], $img); ?> sirarthur
The following code will rename an uploaded image to a MD5 hash with a rand number added of its name and check wheter a file with same hash already exists or not: <?php $file = $HTTP_POST_FILES['file']; $image=new Image($imgfld,$file); if($image->FType != null){ if ($image->FType=="image/gif") { $ext = ".gif"; }else{ $ext = ".jpg"; } $nfile = md5($image->Name . rand()); while(file_exists($imgfld . $nfile . $ext) == true){ $nfile = md5($image->Name . rand()); } $image->ResizedWidth = $imggrx; $image->ResizedHeight = $imggry; $image->Resample($nfile); ?> It uses an image class found at phpclasses.org 09-aug-2005 03:20
That is true feshi. But, if you have your server configured correctly, those access logs will only be accessible by an admin or the root account. The webuser account that runs the php script will be unable to start reading from that file. That's the easiest fix.
worldclimb
Small error in florinel2k's example $sourcePath should be $fileUrl, otherwise it works well for me. //Corrected This is an example if you want to know that a file exists (if that file isn't on your server): $fileUrl = "http://www.examplecom/test.jpg"; $AgetHeaders = @get_headers($fileUrl); if (preg_match("|200|", $AgetHeaders[0])) { // file exists } else { // file doesn't exists } 12-feb-2004 02: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.
seejohnrun
not to overshadow anyone making url_exists functions, but... function url_exists($url) { if ((strpos($url, "http")) === false) $url = "http://" . $url; if (is_array(@get_headers($url))) return true; else return false; } enjoy! 07-mar-2005 10: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.
vernon
In response to seejohnrun's version to check if a URL exists. Even if the file doesn't exist you're still going to get 404 headers. You can still use get_headers if you don't have the option of using CURL.. $file = 'http://www.domain.com/somefile.jpg'; $file_headers = @get_headers($file); if($file_headers[0] == 'HTTP/1.1 404 Not Found') { $exists = false; } else { $exists = true; } pcdinh
In response to havran at gmail dot com Your function url_exists() does not work because it has got a big bug. curl_init does not make a connection to that url until curl_exec() is executed. The return value from curl_init() shows if a curl session can be started. That function can be rewritten as follows <?php class Url { /** * Check if an url is existed * * @param string $url * @access static * @return bool True if the url is accessible and false if the url is unaccessible or does not exist * @throws Exception An exception will be thrown when Curl session fails to start */ public static function exists($url) { if (null === $url || '' === trim($url)) { throw new Exception('The url to check must be a not empty string'); } $handle = curl_init($url); if (false === $handle) { throw new Exception('Fail to start Curl session'); } curl_setopt($handle, CURLOPT_HEADER, false); curl_setopt($handle, CURLOPT_NOBODY, true); curl_setopt($handle, CURLOPT_RETURNTRANSFER, false); // grab Url $connectable = curl_exec($handle); // close Curl resource, and free up system resources curl_close($handle); return $connectable; } } ?> How to use: <?php try { if (Url::exists('http://phpvietnam.net')) { // Do something here } } catch (Exception $ex) { // Do something here } ?> adam
In regards to the function url_exists below... the reason it's slow is because of fopen(). I tried this function with a loop of 25 urls, and output the time spent using microtime(), which ended up taking 4.6 seconds. I wrote a new function using fsockopen() and tried with the same 25 urls. Time spent, 1.1 seconds. More than 4 times as fast. Another issue with it, I don't know if this is a problem or not, but fopen() returns true if the url results in a 500 Internal Server Error. fsockopen() returns false in this case. I don't know if this is the fastest/most efficient method, but I think it's a nice alternative regardless. Here's the function: <?php function url_exists($url){ if(strstr($url, "http://")) $url = str_replace("http://", "", $url); $fp = @fsockopen($url, 80); if($fp === false) return false; return true; } ?> aidan
If you'd like to check if a file exists anywhere your include path, have a look at this function: http://aidanlister.com/repos/v/function.file_exists_incpath.php alex
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.
bvazquez
If you are trying to access a Windows Network Share you have to configure your WebServer with enough permissions for example: $file = fopen("\\siscomx17\c\websapp.log",'r'); You will get an error telling you that the pathname doesnt exist this will be because Apache or IIS run as LocalSystem so you will have to enter to Services and configure Apache on "Open a session as" Create a new user that has enough permissions and also be sure that target share has the proper permissions. Hope this save some hours of research to anyone. earle dot west
If the file being tested by file_exists() is a file on a symbolically-linked directory structure, the results depend on the permissions of the directory tree node underneath the linked tree. PHP under a web server (i.e. apache) will respect permissions of the file system underneath the symbolic link, contrasting with PHP as a shell script which respects permissions of the directories that are linked (i.e. on top, and visible). This results in files that appear to NOT exist on a symbolic link, even though they are very much in existance and indeed are readable by the web server. tma
If checking for a file newly created by an external program in Windows then file_exists() does not recognize it immediately. Iy seems that a short timeout may be required. <? $file = 'file.tmp'; if ($h = popen("start \"bla\" touch $file", "r")) { pclose($h); // now I would like know if a file was created // note: usleep not supported $start = gettimeofday(); while (!file_exists(trim($file, " '\""))) { $stop = gettimeofday(); if ( 1000000 * ($stop['sec'] - $start['sec']) + $stop['usec'] - $start['usec'] > 500000) break; // wait a moment } if (file_exists($file)) // now should be reliable ?> 07-jan-2006 09:08
I wrote this little handy function to check if an image exists in a directory, and if so, return a filename which doesnt exists e.g. if you try 'flower.jpg' and it exists, then it tries 'flower[1].jpg' and if that one exists it tries 'flower[2].jpg' and so on. It works fine at my place. Ofcourse you can use it also for other filetypes than images. <?php function imageExists($image,$dir) { $i=1; $probeer=$image; while(file_exists($dir.$probeer)) { $punt=strrpos($image,"."); if(substr($image,($punt-3),1)!==("[") && substr($image,($punt-1),1)!==("]")) { $probeer=substr($image,0,$punt)."[".$i."]". substr($image,($punt),strlen($image)-$punt); } else { $probeer=substr($image,0,($punt-3))."[".$i."]". substr($image,($punt),strlen($image)-$punt); } $i++; } return $probeer; } ?> pilotdoofy
I wrote a very simple function that allows you to search a folder for a file name with a regular expression. It can handle both PREG and EREG regexps and can accept different case sensitivities for EREG regexps. function regExpFile($regExp, $dir, $regType='P', $case='') { # Two parameters accepted by $regType are E for ereg* functions # and P for preg* functions $func = ( $regType == 'P' ) ? 'preg_match' : 'ereg' . $case; # Note, technically anything other than P will use ereg* functions; # however, you can specify whether to use ereg or eregi by # declaring $case as "i" to use eregi rather than ereg $open = opendir($dir); while( ($file = readdir($open)) !== false ) { if ( $func($regExp, $file) ) { return true; } } // End while return false; } // End function Basically if you supply anything but "P" for $regType it will assume you're using EREG regexps. The case should only be blank or "i". guillermogomezruiz
I was having problems with the file_exists when using urls, so I made this function: <?php function file_exists_2($filePath) { return ($ch = curl_init($filePath)) ? @curl_close($ch) || true : false; } ?> Cheers! nathaniel
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. phenbach
I recently had an issue with PLESK and copying file to other directories with the move_uploaded file function. This would work on every linux server except plesk servers. I could figure it out and have yet to find out. I had to create a work a round and decided to use the exec() function. As noted above the file_exist() function must need to wait for some time and I found the looking function a waste of resouces and didn't work for me anyway. So this is what I came up with. function cp($source,$destination){ $cmd="cp -u ".$source ." ".$destination; //create the command string to copy with the update option exec($cmd); //exec command $cmd_test="ls -la ".$destination; //list file exec($cmd_test,$out); //If the file is present it $out[0] key will contain the file info. //if it is not present it will be null if (isset($out[0])){ return true; }else{ return false; } } fabrizio staff
here a function to check if a certain URL exist: <?php function url_exists($url) { $a_url = parse_url($url); if (!isset($a_url['port'])) $a_url['port'] = 80; $errno = 0; $errstr = ''; $timeout = 30; if(isset($a_url['host']) && $a_url['host']!=gethostbyname($a_url['host'])){ $fid = fsockopen($a_url['host'], $a_url['port'], $errno, $errstr, $timeout); if (!$fid) return false; $page = isset($a_url['path']) ?$a_url['path']:''; $page .= isset($a_url['query'])?'?'.$a_url['query']:''; fputs($fid, 'HEAD '.$page.' HTTP/1.0'."\r\n".'Host: '.$a_url['host']."\r\n\r\n"); $head = fread($fid, 4096); fclose($fid); return preg_match('#^HTTP/.*\s+[200|302]+\s#i', $head); } else { return false; } } ?> in my CMS, I am using it with those lines: <?php if(!isset($this->f_exist[$image]['exist'])) if(strtolower(substr($fimage,0,4)) == 'http' || strtolower(substr($fimage,0,4)) == 'www.'){ if(strtolower(substr($image,0,4)) == 'www.'){ $fimage = 'http://'.$fimage; $image = 'http://'.$image; } $this->f_exist[$image]['exist'] = $this->url_exists($fimage); //for now } else { $this->f_exist[$image]['exist'] = ($fimage!='' && file_exists($fimage) && is_file($fimage) && is_readable($fimage) && filesize($fimage)>0); } } ?> havran
Function url_exists() through CURL. <?php function url_exists($url) { if (!$fp = curl_init($url)) return false; return true; } ?> clancyhood
Full-featured function to check if a file exists on an external server Using snippets of code from below and some of my own I knocked this up because I wanted to check a URL from user input, and to be able to tell exactly what is wrong with a URL, not simply if it's true or false. This function also bypasses any need for the server to check for URLs that simply aren't going to exist I got the big list of domain tlds from http://data.iana.org/TLD/tlds-alpha-by-domain.txt <?php ### check file exists on external server - returns numeric values for false, a full URL string for true. // ext = optional file extension, like html, mp3, jpg... stops checking if doesn't meet this condition function xfile_404($file, $ext=false){ $file = ereg_replace(' +', '%20', trim($file)); if(substr($file, 0, 7) !== "http://"){ $file = "http://" . $file; } if($ext){ $file_ext = strtolower(array_pop(explode('.', $file))); if($file_ext !== $ext){ return 1; break; } } $domain = substr($file, 7); //lose the http prefix $domain_ext = strtoupper(array_pop(explode('.', substr($domain, 0, strpos($domain, '/'))))); // end up with 'com' or 'net' or something $types = array('AC', 'AD', 'AE', 'AERO', 'AF', 'AG', 'AI', 'AL', 'AM', 'AN', 'AO', 'AQ', 'AR', 'ARPA', 'AS', 'ASIA', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BIZ', 'BJ', 'BM', 'BN', 'BO', 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ', 'CA', 'CAT', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'COM', 'COOP', 'CR', 'CU', 'CV', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EC', 'EDU', 'EE', 'EG', 'ER', 'ES', 'ET', 'EU', 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GOV', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IM', 'IN', 'INFO', 'INT', 'IO', 'IQ', 'IR', 'IS', 'IT', 'JE', 'JM', 'JO', 'JOBS', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LOCAL', 'LR', 'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'MG', 'MH', 'MIL', 'MK', 'ML', 'MM', 'MN', 'MO', 'MOBI', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MUSEUM', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NAME', 'NC', 'NE', 'NET', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM', 'ORG', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PRO', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'ST', 'SU', 'SV', 'SY', 'SZ', 'TC', 'TD', 'TEL', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM', 'TN', 'TO', 'TP', 'TR', 'TRAVEL', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UK', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'YU', 'ZA', 'ZM', 'ZW'); if(!in_array($domain_ext, $types)){ return 2; break; } $file_headers = @get_headers($file); if(!$file_headers){ return 3; break; } if($file_headers[0] == 'HTTP/1.1 404 Not Found') { return 404; }else{ return ereg_replace('%20', ' ', $file); } } ### Test it out $url = "www.sameindeath.com/MJ13/mp3/singlephile.mp3"; if(!is_numeric(xfile_404($url))){ // it exists if(!is_numeric(xfile_404($url, 'mp3'))){ // it exists, and it's the type of file we want it to be // Note that you can also use the array returned from $file_headers = @get_headers($file); // to determine file type and file size also. Woopee! ?> ktcb123
For some reason, none of the url_exists() functions posted here worked for me, so here is my own tweaked version of it. <?php function url_exists($url){ $url = str_replace("http://", "", $url); if (strstr($url, "/")) { $url = explode("/", $url, 2); $url[1] = "/".$url[1]; } else { $url = array($url, "/"); } $fh = fsockopen($url[0], 80); if ($fh) { fputs($fh,"GET ".$url[1]." HTTP/1.1\nHost:".$url[0]."\n\n"); if (fread($fh, 22) == "HTTP/1.1 404 Not Found") { return FALSE; } else { return TRUE; } } else { return FALSE;} } ?> andrewnospamplease
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.
flobee
file_exists overwrites the last access (atime) ! try: if (@fclose(@fopen( $file, "r"))) { // true; } else { // false; } to check if important for you stefan
file_exists and safe_mode file_exists under safe_mode works (I work with for php 4) doesn't work when owner of the dir where the file stands differs from the php-owner. e.g. file_exists in this dir will give FALSE nevertheless the file exists rights owner dir drwxr-xr-x apache images change the owner of the dir to the phpowner and file_exists works. I spent too much time to discover. Hope it will spare a lot of your time. Stefan stephen dot reay
developing a CMS, with a link checker, it caused issues that when running on Win32, file_exists shows no error for case differences between the file on disk and the file you query for. this causes an issue when putting content created on the Win32 box onto a *NIX box. the following is a function to test for files with case sensitivity, regardless of the OS. it returns 1 for a match, 0 for fails, and 2 if the file exists but with a different case. function file_exists_case($strUrl) { $realPath = str_replace('\\','/',realpath($strUrl)); if(file_exists($strUrl) && $realPath == $strUrl) { return 1; //File exists, with correct case } elseif(file_exists($realPath)) { return 2; //File exists, but wrong case } else { return 0; //File does not exist } } joe dot knall
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 hiro
As of php 5.0.4, many (if not all) php file manipulation functions fail if a file's size is no smaller than 2GB (i.e. 2^31) on the x86 platforms. Even file_exists() fails (always returns FALSE). This puzzled me when I was writing a video file manipulation application. A simple alternative is like: function file_exists_2gb($filename) { system("test -f $filename", $rval); return ($rval == 0); } davidc
Also while using the file_exists file, please make sure you do not start using stuff like, <?php if(file_exists($_GET['file'] . '.php')) { include($_GET['file'] . '.php'; } ?> you could use something like this.. <?php $inrep = "./"; $extfichier = ".php"; $page = $inrep.basename(strval($_REQUEST["page"]),$extfichier).extfichier; if(file_exist($page)) { include($page); } ?> or even hardcode it. So since pretty much all commercial server(s) have url_fopen on.. you can imagine that file_exists($_GET['file']. '.php') is rather .. unsecure :) -David Coallier openspecies
/* * EXTERN/FS FILE * a simple alternative without cURL */ function sys_file_exists($f = NULL) { $h = array(); $ret = FALSE; if(!is_null($f)): if(preg_match('/^http|https|ftp/',$f)): //test protocol EXTERN $h = @get_headers($f); if(array_key_exists(0,$h)) : $ret = (bool) preg_match('/200|301/',$h[0]); /* HTTP/1.1 301 DAP (directory) */ endif; else: //else FS $ret = (file_exists($f) && is_readable($f)); endif; endif; return (($ret === TRUE) ? TRUE : FALSE); } then, it's easy to replace file_exists in your code, grep -R file_exists path/to/frameworks ... private function _loadModel($file = NULL) { //TRACE($file); try { if(is_null($file) || !sys_file_exists($file)) : throw new SF_websiteview_exception('loadModel : '.$file.' could not be loaded'); endif; } catch(SF_websiteview_exception $ex){$ex->trace(FALSE);} return file_get_contents($file); } ... private function _loadtable($file) { try { if(sys_file_exists($file)): $buf = file($file); else: throw new SF_localization_exception('Table '.$this->tablename.' could not be loaded'); endif; } catch(SF_localization_exception $ex){$ex->trace(TRUE);$ex->__exit();} $tbl = array(); $i = 0; while ($i < count($buf) ) : if (preg_match('/"(.*)"+[ = ]+"(.*)";+$/',trim($buf[$i]),$row) && !preg_match("/^[\/\/|\/\*]/",$buf[$i])) : $tbl[$row[1]] = $row[2]; endif; $i++; endwhile; $this->table = $tbl; unset($tbl,$buf); } ... @+ |
Change Languagebasename chgrp chmod chown clearstatcache copy delete dirname disk_free_space disk_total_space diskfreespace fclose feof fflush fgetc fgetcsv fgets fgetss file_exists file_get_contents file_put_contents file fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype flock fnmatch fopen fpassthru fputcsv fputs fread fscanf fseek fstat ftell ftruncate fwrite glob is_dir is_executable is_file is_link is_readable is_uploaded_file is_writable is_writeable lchgrp lchown link linkinfo lstat mkdir move_uploaded_file parse_ini_file pathinfo pclose popen readfile readlink realpath rename rewind rmdir set_file_buffer stat symlink tempnam tmpfile touch umask unlink |