由于某些原因,我一直使用下面的代码为文件名获取'1‘:
if (is_dir($log_directory))
{
if ($handle = opendir($log_directory))
{
while($file = readdir($handle) !== FALSE)
{
$results_array[] = $file;
}
closedir($handle);
}
}
当我回显$results_array中的每个元素时,我得到了一堆‘1’,而不是文件的名称。我如何获取文件的名称?
发布于 2010-05-28 00:35:01
不要担心打开/readdir,而是使用glob
:
foreach(glob($log_directory.'/*.*') as $file) {
...
}
发布于 2014-09-23 14:36:48
SPL样式:
foreach (new DirectoryIterator(__DIR__) as $file) {
if ($file->isFile()) {
print $file->getFilename() . "\n";
}
}
在DirectoryIterator和SplFileInfo类中查看可以使用的可用方法列表。
发布于 2010-05-28 00:47:47
您需要用括号将$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 />';
}
https://stackoverflow.com/questions/2922954
复制相似问题