3

以下で使用されるコードは、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?>
4

1 に答える 1

1

glob()ディレクトリとファイル名を返します。$fileしたがって、に再割り当てしない場合basename($file)、文字列全体が出力用にそのまま残ります。条件をにチェックインすることもできbasename()ます。if()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>';
}
于 2013-01-20T22:28:35.200 に答える