【问题标题】:php echo folder name using glob使用 glob 的 php 回显文件夹名称
【发布时间】:2013-01-20 22:12:23
【问题描述】:

使用的代码将从 GLOB_BRACE 中列出的 3 个文件夹中的任何一个中随机抽取 10 个文件。

例如:

$files = (glob('../{folder1,folder2,folder3}/*.php', GLOB_BRACE)); 

我想在 $thelist 下面看到的 url 中回显文件夹名称

$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)
  • 是的,我不知道如何获取文件夹名称
  • 这应该是dirname($file) 得到的。
  • 我已尝试添加 $path = dirname($file);然后将 $path 添加到 $randomlist .= '

    '.$title.'

    ';我还在学习php你看所以我不知道。
  • 试试我在下面发布的内容。实际上不需要执行 basename() 或 dirname()。

标签: php arrays echo shuffle glob


【解决方案1】:

glob() 将返回目录和文件名。因此,如果您不将$file 重新分配给basename($file),则整个字符串将保持不变以供输出。您仍然可以将if() 条件中的basename() 检查为continue

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>';
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-31
    • 1970-01-01
    • 2012-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    相关资源
    最近更新 更多