По некоторым причинам я продолжаю добираться '1' для имен файлов с этим кодом:
if (is_dir($log_directory))
{
if ($handle = opendir($log_directory))
{
while($file = readdir($handle) !== FALSE)
{
$results_array[] = $file;
}
closedir($handle);
}
}
Когда я повторяю каждый элемент в $results_array, я получаю набор '1's, не название файла. Как я получаю название файлов?
Не беспокойтесь о open / readdir и используйте вместо него glob
:
foreach(glob($log_directory.'/*.*') as $file) {
...
}
Вы должны заключить $ file = readdir ($ handle)
в круглые скобки.
Вот так:
$log_directory = 'your_dir_name_here';
$results_array = array();
if (is_dir($log_directory))
{
if ($handle = opendir($log_directory))
{
//Notice the parentheses I added:
while(($file = readdir($handle)) !== FALSE)
{
$results_array[] = $file;
}
closedir($handle);
}
}
//Output findings
foreach($results_array as $value)
{
echo $value . '<br />';
}
Это из-за неуверенности оператора. Попробуйте изменить его на:
while(($file = readdir($handle)) !== FALSE)
{
$results_array[] = $file;
}
closedir($handle);