使用glob函数在PHP中输出文件夹名称

3
下面使用的代码将从GLOB_BRACE中列出的3个文件夹中随机选择10个文件。
例如:
$files = (glob('../{folder1,folder2,folder3}/*.php', GLOB_BRACE)); 

我希望你能在下面看到的网址$thelist中回显文件夹名称。
$thelist .= '<p><a href="../'.$folder 1 or 2 or 3.'/'.$file.'">'.$title.'</a></p>';

所以当它显示在我的页面上时,它会读取。
<p><a href="../folder1/page-name.php">what ever</a></p>
<p><a href="../folder3/page-name.php">what ever</a></p>
<p><a href="../folder1/page-name.php">what ever</a></p>
<p><a href="../folder2/page-name.php">what ever</a></p>
<p><a href="../folder1/page-name.php">what ever</a></p>
<p><a href="../folder3/page-name.php">what ever</a></p>
<p><a href="../folder2/page-name.php">what ever</a></p>
<p><a href="../folder3/page-name.php">what ever</a></p>
<p><a href="../folder1/page-name.php">what ever</a></p>
<p><a href="../folder2/page-name.php">what ever</a></p>

使用的代码:

<?php 
$files = (glob('../{folder1,folder2,folder3}/*.php', GLOB_BRACE)); /* change php to the file you require either html php jpg png. */
shuffle($files);
$selection = array_slice($files, 0, 11);

foreach ($selection as $file) {
    $file = basename($file);
    if ($file == 'index.php') continue;

    $title = str_replace('-', ' ', pathinfo($file, PATHINFO_FILENAME));
        $randomlist .= '<p><a href="../'.$folder 1 or 2 or 3.'/'.$file.'">'.$title.'</a></p>';
    }
?>
<?=$randomlist?>

什么不起作用?你在获取文件夹名称方面遇到了麻烦吗?dirname($file) - Michael Berkowski
是的,我不知道如何获取文件夹名称。 - Daisy Oopsy
这应该是 dirname($file) 的输出结果。 - Michael Berkowski
我曾尝试添加 $path = dirname($file); 然后将 $path 添加到 $randomlist .= '<p><a href="../'.$path.'/'.$file.'">'.$title.'</a></p>'; 但我还在学习 PHP,不是很懂。 - Daisy Oopsy
尝试使用我下面发布的内容。实际上,不需要执行basename()或dirname()函数。 - Michael Berkowski
1个回答

1

glob()函数会返回目录和文件名。因此,如果您不将$file重新赋值为basename($file),那么整个字符串就会原封不动地输出。您仍然可以在if()条件中检查basename()并继续执行。

foreach ($selection as $file) { 
  // Call basename() in the if condition, but don't reassign the variable $file
  if (basename($file) == 'index.php') continue;

  $title = str_replace('-', ' ', pathinfo($file, PATHINFO_FILENAME));
  // Using the full `$file` in the HTML output. No need for basename() or dirname().
  // Using htmlentities to encode the file path for an HTML attribute
  $randomlist .= '<p><a href="' . htmlentities($file, ENT_QUOTES) . '">'.$title.'</a></p>';
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接