PHP: DirectoryIterator::isFile - Manual

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

DirectoryIterator::isLink DirectoryIterator::isExecutable

Last updated: Fri, 26 Jan 2007

view this page in

# DirectoryIterator::isFile

(no version information, might be only in CVS)

DirectoryIterator::isFile -- Returns true if file is a regular file

## Description

bool DirectoryIterator::isFile ( void )

Внимание
К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

add a note User Contributed Notes
DirectoryIterator::isFile
kencomer at NOSPAM dot kencomer dot com
14-Sep-2005 06:49
`I put in an example in __autoload, but it is useful here, too...
Yet another class/interface __autoload function. Includes an example usage of the SPL DirectoryIterator class, a settable case-ignore flag, and support for multiple file name patterns to allow easy integration from multiple sources.
<?php
/**
* __autoload
*
* @author Ken Comer
* @copyright released into public domain 2005 Ken Comer
*/
define('IGNORE_CASE',true);
// comment out the define() of IGNORE_CASE to be
// case-sensitive. I like to ignore case so that I can
// use UPPERCASE for the test versions of the file.
/**
* autoloads classes and interfaces for PHP5
*
* @author Ken Comer
*/
function __autoload($class_name) {
// This will be set the first time through.
// Put your default values in the place indicated
// below so as to eliminate possible duplicates
// in the .ini include_path
static $possible_path = NULL;
// Leave this as NULL.
// List here whatever formats you use for your
// file names. Note that, if you autoload
// a class that implements a non-loaded interface,
// you will also need to autoload that interface.
static $permitted_formats = array(
"&CLASS.class.inc"
,"&CLASS.class.inc.php"
,"&CLASS.class.inc.php5"
,"class.&CLASS.inc"
,"class.&CLASS.inc.php"
,"class.&CLASS.inc.php5"
,"&CLASS.interface.inc"
,"&CLASS.interface.inc.php"
,"&CLASS.interface.inc.php5"
,"i&CLASS.interface.inc"
,"i&CLASS.interface.inc.php"
,"i&CLASS.interface.inc.php5"
);
// Put the &CLASS wherever the $class_name
// might appear
// Only executed the first time __autoload is called
if (NULL===$possible_path):
// These are the default paths for this application
$possible_path = array_flip(array(
"."
,".."
,"../include"
,"/public_html/php/include"
));
// Customize this yourself, but leave the
// array_flip alone. We will use this
// to get rid of duplicate entries from the
// include_path .ini list.
// Merge the flipped arrays to get rid of duplicate
// "keys" (which are really the valid include
// paths) then strip out the keys leaving only
// uniques. This is marginally faster than
// using array_combine and array_unique and
// much more elegant. Okay, it's weird, too.
$possible_path = array_keys(array_merge($possible_path,
array_flip(explode(ini_get("include_path"),";"))));
endif; /* static $possible_path initialization */
$possibility = str_replace("&CLASS",$class_name,$permitted_formats);
foreach ( $possible_path as $directory ) {
if (!file_exists($directory) or !is_dir($directory))
{
continue;
}
$file_to_check = new DirectoryIterator($directory);
foreach ( $file_to_check as $file ) {
// ignore directories and files that do not contain
// $class_name
if ( !$file->isDir()
and ( defined(IGNORE_CASE) && TRUE===IGNORE_CASE )
? stripos($file->getFileName(),$class_name)
: strpos($file->getFileName(),$class_name) ) :
// class_name was included, now compare against
// all permitted file name patterns
foreach ( $possibility as $compare ):
if ((defined(IGNORE_CASE) && TRUE===IGNORE_CASE )
? !strcasecmp($compare,$file->getFileName())
: $compare===$file->getFileName()
) {
// by using $compare, you will get a qualified
// file name
include_once($compare);
return TRUE;
}
endforeach; /* $possibility */
endif;
} /* foreach $file_to_check */
}
}
?>`
ludvig dot ericson at gmail dot com
31-Aug-2005 04:29
`Usage:
<?php
//open current directory
$dir = new DirectoryIterator(".");
// use do .. while since we need to iterate atleast once
// and the first two items are always "." and ".."
do {
// if it isn't "." or ".."
if (!$dir->isDot()) {
// echo out pathname and "/" if it's a directory
echo $dir->getPathname() . ($dir->isDir() ? "/" : "");
}
} while ($dir->next())
?>
Outputs something like:
/path/file1
/path/dir1/
/path/file2
/path/file3
/path/dir2/
---
Note from the extension author:
Try this:
<?php
foreach(new DirectoryIterator(".") as $file)
{
if (!$file->isDot()) {
echo $file->getPathname() . ($file->isDir() ? "/" : "");
}
}
?>`
add a note
DirectoryIterator::isLink DirectoryIterator::isExecutable

Last updated: Fri, 26 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 10:36:09 2007 PST