0

メジャーなPHP初心者はこちら!! ディレクトリからすべての画像を取得し、.jpg 以外のファイルを除外し、結果をシャッフルしてから文字列を表示したいと考えています。最終的には、ある種のスライドショーにマージされます。結果をシャッフルしようとするまで、すべてがうまくいきました。出力が得られず、空白の画面が表示されます。

<?php
$rootpath = 'images/slide/';
$fileinfos = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($rootpath));
foreach($fileinfos as $pathnames => $fileinfo) {
shuffle($pathnames);
foreach ($pathnames as $pathname) {
    if (preg_match("/^.*\.(lck|bak|swf|mno|png|php)$/i", $pathname)) {
        } else {
            echo $pathname. "<br />";
                }
        }
} 

?>

解決!!助けてくれてありがとう、私自身のことをずっと難しくしていました。

<?php
$rootpath = 'images/slide/';
$pathnames = scandir($rootpath);
shuffle($pathnames);
foreach ($pathnames as $pathname) {
if (preg_match("/^.*\.(lck|bak|swf|mno|png|php)$/i", $pathname)) {
    } else {
        print_r($pathname);
         }
}

?>

4

3 に答える 3

0

あなたのコメントによると、 $pathnames は配列ではありません。最初に文字列に基づいて配列を生成し、次にそれをシャッフルする必要があります。

$pathnamesArray = explode(" ", $pathnames);
shuffle($pathnamesArray);
foreach ($pathnamesArray as $pathname) {        
    if (!preg_match("/^.*\.(lck|bak|swf|mno|png|php)$/i", $pathname)) {                  
         echo $pathname;
    }  
 }
于 2013-08-30T19:58:39.437 に答える