PHP/file/name: Difference between revisions

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
No edit summary
SplFileInfo
 
Line 23: Line 23:
** There doesn't seem to be any corresponding function for rebuilding a filespec from an array.
** There doesn't seem to be any corresponding function for rebuilding a filespec from an array.
* [https://www.php.net/manual/en/function.realpath.php {{fmt/code|realpath()}}] returns a de-contextualized canonical absolute filespec.
* [https://www.php.net/manual/en/function.realpath.php {{fmt/code|realpath()}}] returns a de-contextualized canonical absolute filespec.
 
* The <code>[https://www.php.net/manual/en/class.splfileinfo.php SplFileInfo]</code> class provides some additional filespec parsing.
==Reference==
==Reference==
* [https://www.php.net/manual/en/refs.fileprocess.file.php File System Related Extensions]: also includes some {{l/same|file}}-related extensions
* [https://www.php.net/manual/en/refs.fileprocess.file.php File System Related Extensions]: also includes some {{l/same|file}}-related extensions

Latest revision as of 03:01, 9 November 2025

Template:Fmt/title

Template:Box/nav

About

PHP's functionality for managing and accessing file/folder names/paths is a mix of classes and standalone functions.

Native Functions

General information:

Any of the following can be used to get a directory listing:

  • Template:Fmt/code accepts a filepath to an existing folder and returns a Template:Fmt/code object, which can be iterated through to get the listing.
    • Sorting must be done after retrieving all the files.
    • It seems likely (I haven't tested this) that the iteration process is atomic by file, i.e. it will return from listing one file even if the directory is damaged and the next one cannot be read.
  • Template:Fmt/code: see Template:L/same
  • Template:Fmt/code accepts a filename and a glob-mask, and tells whether the filename fits the mask
  • Template:Fmt/code accepts a filepath to an existing folder and returns an array of files found in the given folder. By default, they are sorted alphabetically.

The following functions can parse a filespec in various ways:

  • Template:Fmt/code returns the last element of a filespec, with some options.
  • Template:Fmt/code returns the filepath to the given file/folder's parent folder.
  • Template:Fmt/code breaks a filespec down into multiple components.
    • There doesn't seem to be any corresponding function for rebuilding a filespec from an array.
  • Template:Fmt/code returns a de-contextualized canonical absolute filespec.
  • The SplFileInfo class provides some additional filespec parsing.

Reference

Code Snippets

This will get a directory of the folder above the code's current working directory:

$arDir = scandir('../');
echo "Directory:<ul>";
foreach ($arDir as $idx => $fn) {
    echo "<li>$fn</li>\n";
}
echo "</ul>";