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
m Woozle moved page PHP/file/sys to PHP/file/name: more accurate
No edit summary
Line 4: Line 4:
PHP's functionality for managing and accessing file/folder names/paths is a mix of classes and standalone functions.
PHP's functionality for managing and accessing file/folder names/paths is a mix of classes and standalone functions.
==Native Functions==
==Native Functions==
General information:
* [https://www.php.net/manual/en/function.getcwd.php {{fmt/code|getcwd()}}]: return the path to the current working directory
** This may not be the same as the directory the code is in!
** To get the code's current directory, use the {{fmt/code|__DIR__}} [https://www.php.net/manual/en/language.constants.magic.php magic constant].
Any of the following can be used to get a directory listing:
Any of the following can be used to get a directory listing:
* {{fmt/code|dir()}} accepts a [[filepath]] to an existing folder and returns a {{fmt/code|Directory}} object, which can be iterated through to get the listing.
* {{fmt/code|dir()}} accepts a [[filepath]] to an existing folder and returns a {{fmt/code|Directory}} object, which can be iterated through to get the listing.
Line 24: Line 29:
** [https://www.php.net/manual/en/book.filesystem.php Filesystem extension]
** [https://www.php.net/manual/en/book.filesystem.php Filesystem extension]
*** This is where all the most common PHP file[sys]-related functions are kept.
*** This is where all the most common PHP file[sys]-related functions are kept.
==Code Snippets==
This will get a directory of the folder above the code's current working directory:
<syntaxhighlight lang=php>
$arDir = scandir('../');
echo "Directory:<ul>";
foreach ($arDir as $idx => $fn) {
    echo "<li>$fn</li>\n";
}
echo "</ul>";
</syntaxhighlight>

Revision as of 01:07, 9 December 2022

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:

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>";