PHP file Operations
1 Get the file name:
basename-returns the file name portion of the path
give a string containing a full path to a file, this function returns the base file name. If the file name ends in suffix, then this part will be removed as well.
String basename (String $path [, String $suffix])
$path = "/home/cate/index/index2.php";
$file = basename ($path);
echo $file. ' <br> '; index2.php
$file 2 = basename ($path, '. php ');
echo $file 2; Index2
$file 3 = basename ($path, ' 2.php ');
echo $file 2; Index
2 Get directory Name
dirname-returns the directory portion of the path
String dirname (string $path)
Gives a string containing a full path to a file, which returns the directory name after removing the file name.
echo dirname (__file__);
__file__ the path to the current file is the same as GETCWD ();
3 Getting the path associative array
pathinfo-return the file path information
pathinfo () returns an associative array containing a Path the information. The following array elements are included:dirname,basename , and extension.
you can specify which cells to return through the parameters options. They include:pathinfo_dirname,pathinfo_basename and pathinfo_extension. The default is to return all cells. This function returns a string if it is not required to get all the cells.
<?php
$path _parts = PathInfo ("/home/cate/index.action.html");
/home/cate file Directory
echo $path _parts["DirName"]. "<br/>";
index.action.html file name
echo $path _parts["basename"]. "<br/>";
HTML extension
echo $path _parts["extension"]. "<br/>";
Get the extension directly
Echo pathinfo ("/home/cate/index.action.html", pathinfo_extension);
4 fopen-Open File or URL
Resource fopen (String $filename, String $mode [, bool $use _include_path [, Resource $zcontext]])
' R ' |
Read-only opens, pointing the file pointer to the file header. |
' R+ ' |
Read-write mode opens, pointing the file pointer to the file header. |
' W ' |
The Write method opens, pointing the file pointer to the file header and truncating the file size to zero. If the file does not exist, try to create it. |
' w+ ' |
Read-write mode opens, pointing the file pointer to the file header and truncating the file size to zero. If the file does not exist, try to create it. |
A |
Write to open, pointing the file pointer to the end of the file. If the file does not exist, try to create it. |
' A + ' |
Read-write mode opens, pointing the file pointer to the end of the file. If the file does not exist, try to create it. |
' X ' |
Creates and opens in writing, pointing the file pointer to the file header. If the file already exists, the fopen () call fails and returns false, and generates an e_warning level error message. If the file does not exist, try to create it. This specifies o_excl| for the underlying open (2) system call The O_creat tag is equivalent. This option is supported by PHP 4.3.2 and later versions and can only be used on local files. |
' x+ ' |
Creates and opens read-write, pointing the file pointer to the file header. If the file already exists, the fopen () call fails and returns false, and generates an e_warning level error message. If the file does not exist, try to create it. This specifies o_excl| for the underlying open (2) system call The O_creat tag is equivalent. This option is supported by PHP 4.3.2 and later versions and can only be used on local files. |
<?php
$handle = fopen ("Doc.txt", "R");
Var_dump ($handle);
D:\wamp\www\test\jsontest.php:3:Resource(3, stream)
<?php
$file = fopen (' Newtxt.txt ', ' W ')ordie (' Cannot open file ');//does not exist and is created automatically
$data = ' You are a coder! ';
Fwrite ($file, $data);
$data = ' You are a man! ';
Fwrite ($file, $data);
Fclose ($file);
5 fstat-Get file information via open file pointer
Array fstat (Resource $handle)
Gets the statistics for the file opened by the file pointer handle. This function is similar to the stat () function except that it acts on an open file pointer instead of a filename.
returns an array with statistics for the file, which is in detail in the stat () page of the manual .
<?php
Open File
$fp = fopen ("Doc.txt", "R");
Get statistical information
$fstat = Fstat ($FP);
Close File
Fclose ($FP);
Show only associative array parts
Print_r (Array_slice ($fstat, 13));
Print_r ($fstat);//Gets a file information array including index and associative array
array_slice-to remove a paragraph from an array to return an array
Array array_slice (array $array, int $offset [, int $length [, bool $preserve _keys]])
array_slice () returns a sequence in an array of arrays specified by the offset and length parameters.
if offset is non-negative, the sequence starts at this offset in the array. If offset is negative, the sequence starts at a distance from the end of the array.
if length is given and is positive, then there will be so many cells in the sequence. If length is given and is negative, the sequence terminates so far away from the end of the array. If omitted, the sequence starts at offset from the end of the array.
<?php
$input = Array("A", "B", "C", "D", "E");
$output = Array_slice ($input, 2); Returns "C", "D", and "E"
$output = Array_slice ($input,-2, 1); Returns "D"
$output = Array_slice ($input, 0, 3); Returns "A", "B", and "C"
Note the differences in the array keys
Print_r (Array_slice ($input, 2,-1));
Print_r (Array_slice ($input, 2,-1, true));
|
Array |
|
( |
|
[0] = C |
|
[1] = d |
|
) |
|
Array |
|
( |
|
[2] = C |
|
[3] = d |
|
) |
|
|
6 filesize-Get File size
int filesize (string $filename)
returns the number of bytes of file size, if an error is returned FALSE and generate a e_warning level of error.
<?php
$filename = ' doc.txt ';
echo $filename. ': '. FileSize ($filename). ' Bytes ';
Doc.txt:46bytes
7.disk_free_space-returns the free space in the directory
float disk_free_space (String $directory)
given a string containing a directory, this function returns the number of available bytes based on the corresponding file system or disk partition.
<?php
Echo disk_free_space ("C:"). ' <br/> ';
Echo disk_free_space ("D:"). ' <br/> ';
Echo disk_free_space ("/");
71001600000
186459181056
disk_total_space-returns the total disk size of a directory
8 fileatime-Get the last access time of the file
filectime-Get the Inode modification time of the file
filemtime-Get File modification time
9 file-to read the entire file into an array
<?php
$myfile = ' doc.txt ';
$lines = file ($myfile);
for ($i =0, $len = count ($lines); $i < $len; $i + +) {
echo mb_convert_encoding ($lines [$i], "UTF-8", "GBK"). ' <br/> ';
}
I am a novice programmer, need to work slowly to gain 1!
I am a novice programmer, need to work slowly to gain 2!
I am a novice programmer, need to work slowly to gain 3!
I am a novice programmer, need to work slowly to gain 4!
I am a novice programmer, need to work slowly to gain 5!
I am a novice programmer, need to work slowly to gain 6!
Mb_convert_encoding ($lines [$i], "UTF-8", "GBK")
Place each line of the original GBK formatted Data $lines[$i] converted to UTF-8 format in Windows
String mb_convert_encoding (String $str, String $to _encoding [, Mixed $from _encoding])
<?php
$myfile = ' doc.txt ';
$encoding = mb_detect_encoding ($myfile, array(' GBK ', ' UTF-16 ', ' UCS-2 ', ' UTF-8 ', ' BIG5 ', ' ASCII '));
echo $encoding;
CP936 is GBK
mb_detect_encoding- Detection Character Set The first is a file or a path the second is a possible character set
fgets-reading a line from the file pointer
String fgets (int $handle [, int $length])
Reads a row from the file pointed to by handle and returns a string of up to length-1 bytes in length. Stop after encountering a newline character (included in the return value), EOF, or having read the length-1 byte (see first the case). If length is not specified, the default is 1 K, or 1024 bytes.
return when error occurs FALSE .
<?php
$handle = fopen (' doc.txt ', ' R ');
if ($handle) {
while (!feof ($handle)) {
$data [] = fgets ($handle, 1024);
}
Print_r ($data);
Fclose ($handle);
}
Array
(
[0] = = I am a novice programmer, need to work slowly to gain 1!
[1] = = I am a novice programmer, need to work slowly to gain 2!
[2] = = I am a novice programmer, need to work slowly to gain 3!
[3] = = I am a novice programmer, need to work slowly to gain 4!
[4] = = I am a novice programmer, need to work slowly to gain 5!
[5] = = I am a novice programmer, need to work slowly to gain 6!
)
feof-Test If the file pointer is at the end of the file
If the server does not close the connection openedby Fsockopen (),feof () waits until the timeout expires and returns TRUE. The default time-out limit is 60 seconds, and you can use Stream_set_timeout () to change the value.
fclose-Close an open file pointer
FGETSS--Reads a line from the file pointer and filters out HTML tags
Same as fgets () except that FGETSS attempts to remove any HTML and PHP markup from the text that is being read.
You can use the optional third parameter to specify which tags are not removed
file_exists-checking whether a file or directory exists
BOOL file_exists (string $filename)
Returns TRUE If the file or directory specified by filename is present, otherwise FALSE.
file_put_contents- Writing a string to a file
int file_put_contents (String $filename, String $data [, int $flags [, Resource $context]])
and sequentially call fopen (),fwrite (), and the fclose () function.
FileNamethe file name to write the data to
Datathe data to write. Type can bestring,Array(but not for multidimensional arrays), orStreamResources
FlagsOptional, rules how to open/write the file. Possible values:
File_use_include_path: Checkfilenamebuilt-in path to the replica
File_append: Writes data appended to the end of the file
Lock_ex: Lock the file
ContextOptional,Contextis a set of options through which you can modify text properties
- fopen ()- open file or URL
- Fwrite ()- write file (can be used safely for binary files)
- File_get_contents ()- reads the entire file into a string
<?php
echo file_put_contents (' doc.txt ', ' You are a programmer 7 ',file_append);
returns the number of bytes 22
If the file does not exist, the file is created, which is equivalent to the fopen () function behavior.
If the file exists, the contents of the file are emptied by default, and you can set the flags parameter value to file_append to avoid.
The file_put_contents function can be used safely with binary objects.
If it is a good idea to make a decision about a file that already exists,
off (File_exists (' test.txt ')) {
File_put_contents (' test.txt ', ' contents ');
}
Common functions for file operations in PHP