ホームページ  >  記事  >  バックエンド開発  >  PHPを使用してページ上の画像を自動的にスクロールして表示する方法

PHPを使用してページ上の画像を自動的にスクロールして表示する方法

墨辰丷
墨辰丷オリジナル
2018-06-12 16:28:263940ブラウズ

この記事では、PHP で画像を自動スクロール表示する方法を主に紹介します。PHP で画像の特殊効果を操作する方法について説明します。必要な方は参考にしてください。この記事の例では、PHP が画像を自動的にスクロールして表示するメソッドを実装しています。詳細は次のとおりです。

画像ディレクトリを指定すると、プログラムがページ上の各画像を自動的にスクロールして表示します。 使用方法:

1. スライドショー画像フォルダーを作成します。

2. 画像フォルダー内のスライドショーを削除します。

3. 次のコードをエンコードした後、「index.php」という名前を付けてテキスト ファイルに貼り付けます。
4. ファイルをディレクトリにアップロードします。
5. 行 6 と行 8 を対応するコードに置き換えます。設定。
6. 実行します (手順 4 で設定した URL を使用します)

コードは次のとおりです:

<?
/*
    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);
    }
}
?>
<!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>

概要

: 上記がこの内容全体です。この記事が皆さんの学習に役立つことを願っています。 関連する推奨事項:

php 配列とオブジェクトの操作方法

##PHP WeChat インターフェイスは QR コード生成クラスを実装します

#phpの差分演算関数array_diffと配列トラバーサル

以上がPHPを使用してページ上の画像を自動的にスクロールして表示する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。