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

Source

Posted by arkgame