opendir
OPENS directory handle.
This function returns FALSE on failure.
If the path is not a valid directory or can not be opened due any restriction, also returns FALSE and an E_WARNING error level is generated, however, this error can be suppressed by prepending @ to the front of the function name.
<?php
res|false opendir ( str $path , res $context = ? )
where,
$path = The directory path to be opened
$context = stream context
?>
$path
The directory path to be opened.
STREAM WRAPPERS
This function attempts to open the directory especified by $path.
PROTOCOLS |
MEANING |
file:// |
LOCAL File System |
http:// |
URL HTTP |
ftp:// |
URL FTP |
php:// |
I/O streams |
zlib:// |
Data Compression stream |
data:// |
DATA (RFC-2397) |
glob:// |
Find Filenames |
phar:// |
PHP Archive |
ssh2:// |
Secure Shell 2 |
rar:// |
RAR |
ogg:// |
Audio |
expect:// |
Interaction of stream processes |
ed48 |
$context
For a description of the $context parameter, refer to the streams.
EXERCISE
<?php
$dir01 = __DIR__ . '/temp/t1';
echo __DIR__ . '/temp/t1' . '<br><br>';
if($yn01 = opendir($dir01))
{
echo '[ ' . $yn01 . ' ] Directory is open!<br><br>';
}
else
{
echo 'Directory CANNOT be opened.<br><br>';
}
?>
EXERCISE
<?php
$dir02 = 'temp/xyz';
echo __DIR__ . '/' . $dir02 . '<br><br>';
if($yn02 = @opendir($dir02))
{
echo '[ ' . $yn02 . ' ] Directory is open!<br><br>';
}
else
{
echo 'Directory CANNOT be opened.<br><br>';
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The @ before the name of the function
prevents the issue of errors
You can test this by removing the @
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
?>
EXERCISE
<?php
define('P2TEMPN', 'temp/t2/t2a');
$dir03 = P2TEMPN;
echo __DIR__ . '/' . P2TEMPN . '<br><br>';
if($yn03 = @opendir($dir03))
{
echo '[ ' . $yn03 . ' ] Directory is open!<br><br>';
}
else
{
echo 'Directory CANNOT be opened.<br><br>';
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The @ before the name of the function
prevents the issue of errors
You can test this by removing the @
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
?>
EXERCISE
<?php
define('DIREP', __DIR__ . '/TEST/temp/t2/t2a');
$dir04 = DIREP;
echo DIREP . '<br><br>';
if($yn04 = opendir($dir04))
{
echo '[ ' . $yn04 . ' ] Directory is open!<br><br>';
}
else
{
echo 'Directory CANNOT be opened.<br><br>';
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
The @ before the name of the function
prevents the issue of errors
You can test this by removing the @
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
?>
EXERCISE
<?php
$dir05 = 'file://' .__DIR__ . '/data';
echo $dir05 . '<br><br>';
$opts05 = [ 'http' => [ 'method'=>"POST",
'header' => "Accept-language: en",
'content' => $dir05 ] ];
$ctx05 = stream_context_create($opts05);
if($yn05 = @opendir($dir05, $ctx05))
{
echo '[ ' . $yn05 . ' ] Directory is open!<br><br>';
}
else
{
echo 'Directory CANNOT be opened.<br><br>';
}
?>
EXERCISE
<?php
$dir06 = __DIR__ . '/user';
echo $dir06 . '<br><br>';
if($yn06 = opendir($dir06))
{
echo '[ ' . $yn06 . ' ] Directory is open!<br><br>';
}
else
{
echo 'Directory CANNOT be opened.<br><br>';
}
?>