Maison > développement back-end > tutoriel php > Comment faire défiler et afficher automatiquement les images sur la page en utilisant PHP

Comment faire défiler et afficher automatiquement les images sur la page en utilisant PHP

墨辰丷
Libérer: 2023-03-31 19:44:01
original
3975 Les gens l'ont consulté

Cet article présente principalement la méthode d'affichage par défilement automatique des images en PHP, impliquant les compétences nécessaires pour utiliser des effets spéciaux d'images en PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer

Les exemples. dans cet article, PHP implémente une méthode pour faire défiler et afficher automatiquement les images. Les détails sont les suivants :

Spécifiez un répertoire d'images et le programme fera défiler et affichera automatiquement chaque image sur la page. Mode d'emploi :

1. Créez un dossier d'images de diaporama.
2. Supprimez le diaporama dans le dossier image.
3. Encodez le code suivant et collez-le dans un fichier texte et nommez-le "index.php"
4. Téléchargez le fichier dans un répertoire
5. Remplacez les lignes 6 et 8 par celles correspondantes. en haut.
6. Exécutez (en utilisant l'URL définie à l'étape 4)

Le code est le suivant :

<?
/*
    PHP image slideshow - auto version - PHP5
*/
// set the absolute path to the directory containing the images
define (&#39;IMGDIR&#39;, &#39;/home/devel/public_html/domain.com/public/images/slideshow/&#39;);
// same but for www
define (&#39;WEBIMGDIR&#39;, &#39;/images/slideshow/&#39;);
// set session name for slideshow "cookie"
define (&#39;SS_SESSNAME&#39;, &#39;slideshow_sess&#39;);
// global error variable
$err = &#39;&#39;;
// start img session
session_name(SS_SESSNAME);
session_start();
// init slideshow class
$ss = new slideshow($err);
if (($err = $ss->init()) != &#39;&#39;)
{
    header(&#39;HTTP/1.1 500 Internal Server Error&#39;);
    echo $err;
    exit();
}
// get image files from directory
$ss->get_images();
// set variables, done.
list($curr, $caption, $first, $prev, $next, $last) = $ss->run();
/*
    slideshow class, can be used stand-alone
*/
class slideshow
{
    private $files_arr = NULL;
    private $err = NULL;
    public function __construct(&$err)
    {
        $this->files_arr = array();
        $this->err = $err;
    }
    public function init()
    {
        // run actions only if img array session var is empty
        // check if image directory exists
        if (!$this->dir_exists())
        {
            return &#39;Error retrieving images, missing directory&#39;;
        }
        return &#39;&#39;;
    }
    public function get_images()
    {
        // run actions only if img array session var is empty
        if (isset($_SESSION[&#39;imgarr&#39;]))
        {
            $this->files_arr = $_SESSION[&#39;imgarr&#39;];
        }
        else
        {
            if ($dh = opendir(IMGDIR))
            {
                while (false !== ($file = readdir($dh)))
                {
                    if (preg_match(&#39;/^.*\.(jpg|jpeg|gif|png)$/i&#39;, $file))
                    {
                        $this->files_arr[] = $file;
                    }
                }
                closedir($dh);
            }
            $_SESSION[&#39;imgarr&#39;] = $this->files_arr;
        }
    }
    public function run()
    {
        $curr = 1;
        $last = count($this->files_arr);
        if (isset($_GET[&#39;img&#39;]))
        {
            if (preg_match(&#39;/^[0-9]+$/&#39;, $_GET[&#39;img&#39;])) $curr = (int)  $_GET[&#39;img&#39;];
            if ($curr <= 0 || $curr > $last) $curr = 1;
        }
        if ($curr <= 1)
        {
            $prev = $curr;
            $next = $curr + 1;
        }
        else if ($curr >= $last)
        {
            $prev = $last - 1;
            $next = $last;
        }
        else
        {
            $prev = $curr - 1;
            $next = $curr + 1;
        }
        // line below sets the caption name...
        $caption = str_replace(&#39;-&#39;, &#39; &#39;, $this->files_arr[$curr - 1]);
        $caption = str_replace(&#39;_&#39;, &#39; &#39;, $caption);
        $caption = preg_replace(&#39;/\.(jpe?g|gif|png)$/i&#39;, &#39;&#39;, $caption);
        $caption = ucfirst($caption);
        return array($this->files_arr[$curr - 1], $caption, 1, $prev, $next, $last);
    }
    private function dir_exists()
    {
        return file_exists(IMGDIR);
    }
}
?>
Copier après la connexion
<!DOCTYPE html >
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Slideshow</title>
    <style type="text/css">
    body{margin: 0;padding: 0;font: 100% Verdana, Arial, Helvetica, sans-serif;font-size: 14px;}
    p#gallery{border: 1px #ccc solid;width: 600px;margin: 40px auto;text-align: center;}
    p#gallery img{margin: 20px;border: 2px #004694 solid;}
    p#gallery p{color: #004694;}
    p#gallery p.pn{padding: 10px;margin: 0 5px;border-top: 1px #ccc solid;}
    a{color:#333;}
    a:hover{color:#cc0000;}
    a.sp{padding-right: 40px;}
    </style>
</head>
<body>
    <p id="gallery">
        <img src="<?=WEBIMGDIR;?><?=$curr;?>" alt="" />
        <p><?=$caption;?></p>
        <p class="pn">
            <a href="?img=<?=$first;?>">First</a> | <a href="?img=<?=$prev;?>" class="sp">Previous</a><a href="?img=<?=$next;?>">Next</a> | <a href="?img=<?=$last;?>">Last</a>
        </p>
    </p>
</body>
</html>
Copier après la connexion

Résumé : C'est tout pour cet article L'intégralité du contenu, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

Comment faire fonctionner les tableaux et objets PHP

L'interface PHP WeChat implémente la classe de génération de code QR

Fonction d'opération de différence PHP array_diff et parcours de tableau

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal