PHP File system
PHP has features to read, write, create & delete files on the remote. This provided predefined functions to perform these operations.
Let us take an example of a file system to understand this
<?php
$file = fopen ("ftp://ftp.domain.com/fakepath/file", "w");
if (!$file)
{
echo "<p>Unable to open remote file for writing.\n";
exit;
}
/* Write the data here. */
fwrite ($file, $_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($file);
?>
Requirement
No external libraries are needed to build this extension.
Installation
There is no installation needed to use these functions; they are part of the PHP core.
Runtime Configuration
Name | Default | Changeable | Changelog |
allow_url_fopen | "1" | PHP_INI_SYSTEM | |
allow_url_include | "0" | PHP_INI_SYSTEM | Available since PHP 5.2.0. |
user_agent | NULL | PHP_INI_ALL | |
default_socket_timeout | "60" | PHP_INI_ALL | |
from | "" | PHP_INI_ALL | |
auto_detect_line_endings | "0" | PHP_INI_ALL | |
sys_temp_dir | "" | PHP_INI_SYSTEM | Available since PHP 5.2.0. |
Resource Types
The file system uses streams as its resource type. Streams are documented in their own reference chapter.
Predefined constants
-
SEEK_SET (integer)
-
SEEK_CUR (integer)
-
SEEK_END (integer)
-
LOCK_SH (integer)
-
LOCK_EX (integer)
-
LOCK_UN (integer)
-
LOCK_NB (integer)
-
GLOB_BRACE (integer)
-
GLOB_ONLYDIR (integer)
-
GLOB_MARK (integer)
-
GLOB_NOSORT (integer)
-
GLOB_NOCHECK (integer)
-
GLOB_NOESCAPE (integer)
-
GLOB_AVAILABLE_FLAGS (integer)
-
PATHINFO_DIRNAME (integer)
-
PATHINFO_BASENAME (integer)
-
PATHINFO_EXTENSION (integer)
-
PATHINFO_FILENAME (integer) – Since PHP 5.2.0.
-
FILE_USE_INCLUDE_PATH (integer) – Search for filename in include_path (since PHP 5).
-
FILE_NO_DEFAULT_CONTEXT (integer)
-
FILE_APPEND (integer) – Append content to the existing file.
-
FILE_IGNORE_NEW_LINES (integer) – Strip EOL characters (since PHP 5).
-
FILE_SKIP_EMPTY_LINES (integer) – Skip empty lines (since PHP 5).
-
FILE_BINARY (integer) – Binary mode (since PHP 5.2.7).
-
FILE_TEXT (integer) – Text mode (since PHP 5.2.7).
-
INI_SCANNER_NORMAL (integer) – Normal INI scanner mode (since PHP 5.3).
-
INI_SCANNER_RAW (integer) – Raw INI scanner mode (since PHP 5.3).
-
INI_SCANNER_TYPED (integer) – Typed INI scanner mode (since PHP 5.6.1).
-
FNM_NOESCAPE (integer) – Disable backslash escaping.
-
FNM_PATHNAME (integer) – Slash in a string only matches slash in the given pattern.
-
FNM_PERIOD (integer) – The leading period in a string must be exactly matched by the period in the given pattern.
-
FNM_CASEFOLD (integer) – Caseless match. Part of the GNU extension.
File system functions
-
basename — Returns trailing name component of the path
-
chgrp — Changes file-group
-
chmod — Changes file mode
-
chown — Changes file owner
-
clearstatcache — Clears file status cache
-
copy — Copies file
-
delete — See unlink or unset
-
dirname — Returns a parent directory's path
-
disk_free_space — Returns available space on filesystem or disk partition
-
disk_total_space — Returns the total size of a filesystem or disk partition
-
diskfreespace — Alias of disk_free_space
-
fclose — Closes an open file pointer
-
feof — Tests for end-of-file on a file pointer
-
fflush — Flushes the output to a file
-
fgetc — Gets character from file pointer
-
fgetcsv — Gets line from file pointer and parse for CSV fields
-
fgets — Gets line from file pointer
-
fgetss — Gets line from file pointer and strip HTML tags
-
file_exists — Checks whether a file or directory exists
-
file_get_contents — Reads entire file into a string
-
file_put_contents — Write data to a file
-
file — Reads entire file into an array
-
fileatime — Gets last access time of file
-
filectime — Gets inode change time of file
-
filegroup — Gets file-group
-
fileinode — Gets file inode
-
filemtime — Gets file modification time
-
fileowner — Gets file owner
-
fileperms — Gets file permissions
-
filesize — Gets file size
-
filetype — Gets file type
-
flock — Portable advisory file locking
-
fnmatch — Match filename against a pattern
-
fopen — Opens file or URL
-
fpassthru — Output all remaining data on a file pointer
-
fputcsv — Format line as CSV and write to file pointer
-
fputs — Alias of fwrite
-
fread — Binary-safe file read
-
fscanf — Parses input from a file according to a format
-
fseek — Seeks on a file pointer
-
fstat — Gets information about a file using an open file pointer
-
ftell — Returns the current position of the file read/write pointer
-
ftruncate — Truncates a file to a given length
-
fwrite — Binary-safe file write
-
glob — Find pathnames matching a pattern
-
is_dir — Tells whether the filename is a directory
-
is_executable — Tells whether the filename is executable
-
is_file — Tells whether the filename is a regular file
-
is_link — Tells whether the filename is a symbolic link
-
is_readable — Tells whether a file exists and is readable
-
is_uploaded_file — Tells whether the file was uploaded via HTTP POST
-
is_writable — Tells whether the filename is writable
-
is_writeable — Alias of is_writable
-
lchgrp — Changes group ownership of symlink
-
lchown — Changes user ownership of symlink
-
link — Create a hard link
-
linkinfo — Gets information about a link
-
lstat — Gives information about a file or symbolic link
-
mkdir — Makes a directory
-
move_uploaded_file — Moves an uploaded file to a new location
-
parse_ini_file — Parse a configuration file
-
parse_ini_string — Parse a configuration string
-
pathinfo — Returns information about a file path
-
pclose — Closes process file pointer
-
popen — Opens process file pointer
-
readfile — Outputs a file
-
readlink — Returns the target of a symbolic link
-
realpath_cache_get — Get real path cache entries
-
realpath_cache_size — Get real path cache size
-
realpath — Returns canonicalized absolute pathname
-
rename — Renames a file or directory
-
rewind — Rewind the position of a file pointer
-
rmdir — Removes the directory
-
set_file_buffer — Alias of stream_set_write_buffer
-
stat — Gives information about a file
-
symlink — Creates a symbolic link
-
tempnam — Create a file with the unique file name
-
tmpfile — Creates a temporary file
-
touch — Sets access and modification time of file
-
umask — Changes the current umask
-
unlink — Deletes a file