I have an array I'm getting back from scandir, but it contains "."
and ".."
and I don't want it to.
My code:
$indir = scandir('../pages');
$fileextensions = array(".", "php", "html", "htm", "shtml");
$replaceextensions = str_replace($fileextensions, "", $indir);
I am doing a string replace on the file extensions, thus causing [0] and [1] to appear empty, but they are "."
and ".."
array(4) {
[0]=>
string(0) ""
[1]=>
string(0) ""
[2]=>
string(4) "test"
[3]=>
string(4) "home"
}
How would I remove the "."
and ".."
from the array?
You can use array_filter.
$indir = array_filter(scandir('../pages'), function($item) {
return !is_dir('../pages/' . $item);
});
Note this filters out all directories and leaves only files and symlinks. If you really want to only exclude only files (and directories) starting with .
, then you could do something like:
$indir = array_filter(scandir('../pages'), function($item) {
return $item[0] !== '.';
});