从Backstretch的文件夹中拉出图像

时间:2014-06-02 16:26:14

标签: php image directory reload jquery-backstretch

因为我无法在任何地方找到答案,也许其他人也对此感到不安。 我想使用backstretch文件夹中的随机图像而不指定之前的图像。我不擅长PHP,所以有人可以告诉我如何做到这一点,我相信它会是......类似于这个解决方案,这是超大的 (How to use the Supersized! plugin with image folders

此外,当重新加载/重新访问页面时,我需要幻灯片显示以不同的图像开始。

非常感谢帮助我!!

1 个答案:

答案 0 :(得分:0)

我已经整理了一个简单的PHP脚本。它从$ image_dir获取所有.jpg,并以随机顺序返回。

第一张图片保存为会话变量,刷新后,新图像被拾取并添加到数组的开头。

代码非常基本,如果你有子文件夹,你必须自定义它:

<强> PHP:

<?php
//Start Session
session_start();


function GetRandomImagesFromDir( $image_dir ) {
//Create image array
$images = glob($image_dir . '*.jpg');


//Get first image
    //Get one random image from array
    $rand_key = array_rand($images, 1);

    //Same image as before?
    if ( $rand_key == $_SESSION['last_image'] ) {
        if ( $rand_key > 1 ) {
            $rand_key--;
        } else {
            $rand_key++;
        }
    }

    //Save Key to Session
    $_SESSION['last_image'] = $rand_key;

    //Save image to var
    $first_image = $images[ $rand_key ];


//Get next images
    //Remove first-image from array
    unset( $images[ $rand_key ] );

    //Shuffle
    shuffle( $images );

    //Add first image
    $images[] = $first_image;

    //Reverse array
    $images = array_reverse($images);


//Array to string
    $return_str = implode('","', $images);
    $return_str = '"'.$return_str.'"';


//Return string
return $return_str;
}
?>

<强> JS:

<script>
    $.backstretch([<?=GetRandomImagesFromDir('backstretch_images/')?>]);
</script>