「PHP」ディレクトリトラバーサル
サンプルコード:
<?php
//ディレクトリトラバーサル
echo memory_get_usage() . “\n";
function traversalDir($path = '.’)
{
echo memory_get_usage() . “\n";
$dir = opendir($path);
echo memory_get_usage() . “\n";
while (($file = readdir($dir)) !== false)
{
$sub_dir = $path . DIRECTORY_SEPARATOR . $file; //サブディレクトリパスを構築 directory_separator
if ($file == “." || $file == “..")
{
continue;
}
else if (is_dir($sub_dir))
{
echo 'Directory ' . $file . ':’ . “\n";
traversalDir($sub_dir);
}
else
{
echo 'File in Directory ' . $path . ': ' . $file . “\n";
}
}
}
traversalDir();
echo memory_get_usage() . “\n";
echo memory_get_usage() . “\n";
//PHP関数を使用してファイルとフォルダの取り扱いを読み取る
function loadReadDir($path = “.")
{
echo memory_get_usage() . “\n";
$pathDir = dir($path);
echo memory_get_usage() . “\n";
while(($file = $pathDir->read()) !== false)
{
$dir = $path . DIRECTORY_SEPARATOR . $file;
if ($file == “." || $file == “..")
{
continue;
}
else if (is_dir($dir))
{
echo “directory:" . $file . “\n";
loadReadDir($dir);
}
else
{
echo “fileName:" . $file . “\n";
}
}
$pathDir->close();
}
loadReadDir();
echo memory_get_usage() . “\n";