|
|
|
It's useful to be able to create unique filenames once
in a while.
If you want good portability so your code will work on
a Windoze box as well as a Linny server then you get
stuffed by not being able to access the PID of the
server process - this is the root of many unique
file naming systems.
Below is a little function that works on anything that
runs PHP.
The idea here is to get the IP of the remote client and
use that as the basis of a unique filename. There is a
possible problem in that of the remote is using a shared,
NAT, Internet feed then you can quite conceivably get
multiple requests that would end up with the same IP.
If we also use the current microtime() then the chances
of two requests generating the same unique become as
close to zero as you can get.
|
<?php
function unique_filename($xtn = ".tmp")
{
// explode the IP of the remote client into four parts
$ipbits = explode(".", $_SERVER["REMOTE_ADDR"]);
// Get both seconds and microseconds parts of the time
list($usec, $sec) = explode(" ",microtime());
// Fudge the time we just got to create two 16 bit words
$usec = (integer) ($usec * 65536);
$sec = ((integer) $sec) & 0xFFFF;
// Fun bit - convert the remote client's IP into a 32 bit
// hex number then tag on the time.
// Result of this operation looks like this xxxxxxxx-xxxx-xxxx
$uid = sprintf("%08x-%04x-%04x",($ipbits[0] << 24)
| ($ipbits[1] << 16)
| ($ipbits[2] << 8)
| $ipbits[3], $sec, $usec);
// Tag on the extension and return the filename
return $uid.$xtn;
}
?> | | |
|
| Link Submition - Allow your visitors to submit links to the site. Categories : PHP, Arrays, Filesystem, Beginner Guides | | | Bs_IniHandler is a class that can read and write ini-style files (and strings) Categories : PHP, Filesystem, PHP Classes | | | file class , uploade file , download file already uploaded on another website Categories : PHP, PHP Classes, Filesystem, Web Services | | | Class that allows the PHP developer to create and manage UNIX like password files suitable for use as Apache authentication password files.
Categories : HTTP, PHP, PHP Classes, Filesystem | | | How to create an empty file? (touch) Categories : Filesystem, PHP | | | How to overide the Max_file_size barier Categories : PHP, PHP Configuration, Filesystem | | | A File Browser Class.To Read Drives,Directories and Files .Files writing is also possible Categories : PHP, PHP Classes, Filesystem | | | Remote Archive (Zip, Tar, Gzip) downloader with FTP and local extration support Categories : PHP, FTP, Filesystem, PHP Classes, Compression | | | List the content of the directory of your webserver where this small PHP Script resides. Categories : PHP, Filesystem, Directories, CSS | | | Remote File Saving with PHP - Download and serve a remote file. The content of the file will be updated at fixed intervals. Categories : PHP, Filesystem, Cache, Sockets, HTTP | | | filesystem Show Files Script Categories : PHP, Filesystem, Java Script | | | An efficient iterative and buffered text file reader Categories : PHP, Classes and Objects, Filesystem, PHP Classes, Log Files | | | Using php3 to upload files, uploading files, file uploads. Categories : PHP, Filesystem, HTTP | | | Convert a File database into MySQL Categories : PHP, Filesystem, Databases, MySQL, Beginner Guides | | | Download manager - A PHP script for adding a download page to any site.It also enables you track the no. of downloads. Categories : PHP, Content Management, Filesystem, Databases, MySQL | |
|
|