Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ PHP _ Pokaz slidow w php z automatycznym importowaniem zdjeć z folderu

Napisany przez: DemSka1337 12.01.2020, 15:19:23

Witam,
Mam ostatnio pewnien problem, ostatnio w szkole dostałem projekt do zrobienia, natomiast konfiguracja raspberrypi w tryb kiosku i zrobienie strony z pokazem automatycznym slajdow z forderu, tzn na pi jest folder (u mnie /var/www/html/images) w którym są zdjęcia i po wklejeniu tam zdjęć to automatycznie zaczynie sie pokaz slajdów ktory jest zapętlony. Nowe zdjęcie jest co ok 3 sekundy.
Znalazłem kod na internecie, ale nie działa, prawdopodobnie przez to że nie umiem skonfigurować lub przez to że jest na php 5 a ja mam php 7. 2 ,ponieważ najnowszy raspbian czyli przerobiony debian 8 (nie pamietam wersji ale ten najnowszy) nie wspiera już php 5.


Screeny:

Strona:
Folder html:
Folder zdjęć:

Kod:

  1. <?
  2. /*
  3. PHP image slideshow - auto version - PHP5
  4. */
  5. // set the absolute path to the directory containing the images
  6. http://www.php.net/define ('IMGDIR', '/var/www/html/images/');
  7. // same but for www
  8. http://www.php.net/define ('WEBIMGDIR', '/');
  9. // set session name for slideshow "cookie"
  10. http://www.php.net/define ('SS_SESSNAME', 'slideshow_sess');
  11. // global error variable
  12. $err = '';
  13. // start img session
  14. http://www.php.net/session_name(SS_SESSNAME);
  15. http://www.php.net/session_start();
  16. // init slideshow class
  17. $ss = new slideshow($err);
  18. if (($err = $ss->init()) != '')
  19. {
  20. http://www.php.net/header('HTTP/1.1 500 Internal Server Error');
  21. http://www.php.net/echo $err;
  22. http://www.php.net/exit();
  23. }
  24. // get image files from directory
  25. $ss->get_images();
  26. // set variables, done.
  27. list($curr, $caption, $first, $prev, $next, $last) = $ss->run();
  28. /*
  29. slideshow class, can be used stand-alone
  30. */
  31. class slideshow
  32. {
  33. private $files_arr = NULL;
  34. private $err = NULL;
  35.  
  36. public function __construct(&$err)
  37. {
  38. $this->files_arr = http://www.php.net/array();
  39. $this->err = $err;
  40. }
  41. public function init()
  42. {
  43. // run actions only if img array session var is empty
  44. // check if image directory exists
  45. if (!$this->dir_exists())
  46. {
  47. return 'Error retrieving images, missing directory';
  48. }
  49. return '';
  50. }
  51. public function get_images()
  52. {
  53. // run actions only if img array session var is empty
  54. if (http://www.php.net/isset($_SESSION['imgarr']))
  55. {
  56. $this->files_arr = $_SESSION['imgarr'];
  57. }
  58. else
  59. {
  60. if ($dh = http://www.php.net/opendir(IMGDIR))
  61. {
  62. while (false !== ($file = http://www.php.net/readdir($dh)))
  63. {
  64. if (http://www.php.net/preg_match('/^.*\.(jpg|jpeg|gif|png)$/i', $file))
  65. {
  66. $this->files_arr[] = $file;
  67. }
  68. }
  69. http://www.php.net/closedir($dh);
  70. }
  71. $_SESSION['imgarr'] = $this->files_arr;
  72. }
  73. }
  74. public function run()
  75. {
  76. $curr = 1;
  77. $last = http://www.php.net/count($this->files_arr);
  78. if (http://www.php.net/isset($_GET['img']))
  79. {
  80. if (http://www.php.net/preg_match('/^[0-9]+$/', $_GET['img'])) $curr = (int) $_GET['img'];
  81. if ($curr <= 0 || $curr > $last) $curr = 1;
  82. }
  83. if ($curr <= 1)
  84. {
  85. $prev = $curr;
  86. $next = $curr + 1;
  87. }
  88. else if ($curr >= $last)
  89. {
  90. $prev = $last - 1;
  91. $next = $last;
  92. }
  93. else
  94. {
  95. $prev = $curr - 1;
  96. $next = $curr + 1;
  97. }
  98. // line below sets the caption name...
  99. $caption = http://www.php.net/str_replace('-', ' ', $this->files_arr[$curr - 1]);
  100. $caption = http://www.php.net/str_replace('_', ' ', $caption);
  101. $caption = http://www.php.net/preg_replace('/\.(jpe?g|gif|png)$/i', '', $caption);
  102. $caption = http://www.php.net/ucfirst($caption);
  103. return http://www.php.net/array($this->files_arr[$curr - 1], $caption, 1, $prev, $next, $last);
  104. }
  105. private function dir_exists()
  106. {
  107. return http://www.php.net/file_exists(IMGDIR);
  108. }
  109.  
  110. }
  111. ?>
  112. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  113. <html xmlns="http://www.w3.org/1999/xhtml">
  114. <head>
  115. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  116. <title>Slideshow</title>
  117. <style type="text/css">
  118. body{margin: 0;padding: 0;font: 100% Verdana, Arial, Helvetica, sans-serif;font-size: 14px;}
  119. div#gallery{border: 1px #ccc solid;width: 600px;margin: 40px auto;text-align: center;}
  120. div#gallery img{margin: 20px;border: 2px #004694 solid;}
  121. div#gallery p{color: #004694;}
  122. div#gallery div.pn{padding: 10px;margin: 0 5px;border-top: 1px #ccc solid;}
  123. a{color:#333;}
  124. a:hover{color:#cc0000;}
  125. a.sp{padding-right: 40px;}
  126. </style>
  127. </head>
  128. <body>
  129. <div id="gallery">
  130. <img src="<?=WEBIMGDIR;?><?=$curr;?>" alt="" />
  131. <p><?=$caption;?></p>
  132. <div class="pn">
  133. <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>
  134. </div>
  135. </div>
  136. </body>
  137. </html>


Tutaj znalazłem kod: https://www.phpsnaps.com/snaps/view/php-image-slideshow-auto/

Napisany przez: viking 12.01.2020, 15:25:44

Daj na początku <?php zamiast krótkiej wersji.

Napisany przez: DemSka1337 12.01.2020, 15:32:38

Cytat(viking @ 12.01.2020, 15:25:44 ) *
Daj na początku <?php zamiast krótkiej wersji.


Zrobiłem i to samo prawie...
https://imgur.com/5jRgG0p

Napisany przez: viking 12.01.2020, 15:36:49

Ogólnie to ci kodu w ogóle nie parsuje. Próbowałeś najprostsze echo chociaż żeby sprawdzić konfigurację?

Napisany przez: DemSka1337 12.01.2020, 16:13:41

Cytat(viking @ 12.01.2020, 15:36:49 ) *
Ogólnie to ci kodu w ogóle nie parsuje. Próbowałeś najprostsze echo chociaż żeby sprawdzić konfigurację?


Ja taki średni w php i ogólnie html, więc nawet nie wiem co to jest haha.gif

Napisany przez: viking 12.01.2020, 17:01:35

Skoro postawiłeś jakiś serwer na Jeżynce to dobrze by było mieć minimalną wiedzę co ewentualnie dodać zmienić żeby przetestować. Średni w php czy leniwy?

Napisany przez: Pyton_000 12.01.2020, 19:59:15

a masz tam zainstalowany apache + php cochaż? No i nie index.html tylko index.php

Napisany przez: DemSka1337 13.01.2020, 08:05:21

Cytat(viking @ 12.01.2020, 17:01:35 ) *
Skoro postawiłeś jakiś serwer na Jeżynce to dobrze by było mieć minimalną wiedzę co ewentualnie dodać zmienić żeby przetestować. Średni w php czy leniwy?


Dla mnie PHP to czarna magia tak jakby. haha.gif


Cytat(Pyton_000 @ 12.01.2020, 19:59:15 ) *
a masz tam zainstalowany apache + php cochaż? No i nie index.html tylko index.php

Przy index.php to samo . Tak jest apache i PHP

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)