欢迎,用户名和显示文件夹中的随机图像

时间:2015-11-17 00:33:54

标签: php random session-variables

我正在尝试修复已有的网站并添加动态信息。我需要使用来自session.php的用户名添加Welcome,$ user,并仅显示他们是否已登录。然后我需要从/ images / banner /文件夹添加图像以动态显示,一次只能添加一个。

这是我到目前为止所拥有的:

<?php session_start();
    require_once ("Includes/simplecms-config.php"); 
    require_once  ("Includes/connectDB.php");
    require_once ('Includes/session.php");
    include("Includes/header.php");         
 ?>


<div id="container">

<?php

$user = $_SESSION['username'];

echo "Welcome $user";

?>

<div id="tagline">Welcome to Sally's diner!</div>
    <div id="banner"><img src="Images/banner/1.jpg" /></div>

</div>

</div> <!-- End of outer-wrapper which opens in header.php -->

<?php 
include ("Includes/footer.php");
?>
  1. 我在第14行遇到语法错误,即$ user = $ _SESSION ['username'];

  2. 如何在/ Images / banner /文件夹中显示图像,其中有多个图像,并且一次只显示一个图像。

  3. 提前感谢您的帮助,

    蛱蝶

1 个答案:

答案 0 :(得分:2)

  1. @showdev在评论中写道。
  2. 要从文件夹中获取随机图像(在PHP中):

    $yourdir = "/Images/banner/";
    
    function getext($file) {
        if(strstr($file,'/')) {
            $file = explode('/', $file);
            $file = end($file);
        }
    
        if(strstr($file,'.')) {
            $file = explode('.', $file);
            $result = end($file);
        } else {
            $result = false;
        }
    
        return $result;
    }    
    
    function listSlideshowItems($dir) {
        $dir = rtrim($dir, '\\/');
        $result = array();
    
        if (file_exists($dir) && is_dir($dir)) {
            foreach (preg_grep('/^([^.])/', scandir($dir)) as $f) {
                if (!is_dir("$dir/$f")) {
                    if (strtolower(getext($f)) == 'png' || strtolower(getext($f)) == 'jpg') {
                        $result[] = $f;
                    }
                }
            }
            return $result;
        } else {
            return null;
        }
    }
    
  3. 然后调用函数:

    $images = listSlideshowItems($yourdir);
    

    print_r($images);将提供如下输出:

    数组([0] =&gt; 0.jpg [1] =&gt; 1.jpg [2] =&gt; 2.jpg [3] =&gt; 3.jpg [4] =&gt; 4.jpg)

    然后将数组洗牌:shuffle($images);

    print_r($images);现在会输出一个输出,例如:

    数组([0] =&gt; 1.jpg [1] =&gt; 4.jpg [2] =&gt; 3.jpg [3] =&gt; 2.jpg [4] =&gt; 0.jpg)

    只需选择第一个,您的 images 文件夹中就有一个图像的随机文件名:$filename = $images[0]

    使用它完成应用程序所需的操作,例如:

    <img src="<?php echo $yourdir . $filename; ?>" alt="">