Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: ошибка в пхп объясните
Форумы портала PHP.SU » » Вопросы новичков » ошибка в пхп объясните

Страниц (1): [1]
 

1. Гость - 11 Апреля, 2018 - 11:57:54 - перейти к сообщению
index.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $dh = new DirectoryIterator( "pics" );
  3.  
  4. $files = array( );
  5. foreach( $dh as $file )
  6. {
  7.   if ( preg_match( "/[.]jpg$/", $file ) ) $files []= "$file";
  8. }
  9. ?>
  10. <html>
  11. <head>
  12. <title>Slideshow</title>
  13. <style>
  14. body { background: black; }
  15. #thumbnails { height: 140px; width: 100%; overflow: auto; }
  16. #pic { text-align: center; height: 400px; padding: 20px; }
  17. </style>
  18. <script>
  19. var image_list = [
  20. <?PHP $first = true; foreach( $files as $image ) { ?>
  21. <?PHP echo( $first ? "" : ", " ); ?>"<?PHP echo( $image ); ?>"
  22. <?PHP $first = false; } ?>
  23. ];
  24.  
  25. var curimage = 0;
  26.  
  27. function switchimg( ind )
  28. {
  29.   var image = image_list[ind];
  30.   var obj = document.getElementById( "selimg" );
  31.   obj.src = "scale.php?image="+image+"&y=400";
  32.   curimage = ind;
  33. }
  34.  
  35. function nextimage( )
  36. {
  37.   curimage++;
  38.   if ( curimage >= image_list.length ) curimage = 0;
  39.     switchimg( curimage );
  40. }
  41. window.setInterval( "nextimage( )", 2000 );
  42. </script>
  43. </head>
  44. <body>
  45. <div id="thumbnails">
  46. <table width="100%">
  47. <tr>
  48. <?PHP $ind = 0; foreach( $files as $image ) { ?>
  49. <td width="160" nowrap align="center">
  50. <a href="javascript:switchimg( <?PHP echo($ind); ?> )">
  51. <img height="100" src="scale.php?image=<?PHP echo($image); ?>&y=100" border="0" /
  52. >
  53. </a>
  54. </td>
  55. <?PHP $ind++; } ?>
  56. </tr>
  57. </table>
  58. </div>
  59. <div id="pic">
  60. <img id="selimg" height="400" src="scale.php?image=<?PHP echo($files[0]);
  61. ?>&y=400" />
  62. </div>
  63. </body>
  64.  


scale.php

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $image = $_GET["image"];
  3. $maxy = $_GET["y"];
  4. $im = @imagecreatefromjpeg( "pics/".$image );
  5. $curx = imagesx( $im );
  6. $cury = imagesy( $im );
  7. $ratio = $maxy / $cury;
  8. $newx = $curx * $ratio;
  9. $newy = $cury * $ratio;
  10. $oim = imagecreatetruecolor( $newx, $newy );
  11. imageantialias( $oim, true );
  12. imagecopyresized( $oim, $im, 0, 0, 0, 0,
  13. $newx, $newy, $curx, $cury );
  14. header( "content-type: image/jpeg" );
  15. imagejpeg( $oim );
  16. ?>
  17.  

Fatal error: Uncaught UnexpectedValueException: DirectoryIterator::__construct(pics,pics): �� ������ ����� �������� ����. (code: 2) in E:\OpenServer\domains\php\Code\Глава 3. DHTML\Трюк 21. Создание просмотрщика слайдов при помощи DHTML\index.php:2 Stack trace: #0 E:\OpenServer\domains\php\Code\Глава 3. DHTML\Трюк 21. Создание просмотрщика слайдов при помощи DHTML\index.php(2): DirectoryIterator->__construct('pics') #1 {main} thrown in E:\OpenServer\domains\php\Code\Глава 3. DHTML\Трюк 21. Создание просмотрщика слайдов при помощи DHTML\index.php on line 2
2. Vladimir Kheifets - 11 Апреля, 2018 - 16:07:40 - перейти к сообщению
php2 пишет:

................................ .....................
$dh = new DirectoryIterator( "pics" );
................................ .....................

Fatal error: Uncaught UnexpectedValueException: DirectoryIterator::__construct(pics,pics): �� ������ ����� �������� ����. ......

Добрый день! Что-то у Вас $dh = new DirectoryIterator( "pics" ) не хочет работать с директорией "pics"
Проверьте, если у Вас эта директория, открыт ли к ней доступ и попробуйте написать так:
PHP:
скопировать код в буфер обмена
  1. $dh = new DirectoryIterator(dirname(__FILE__)."/pics");

Удачи!
3. Гость - 12 Апреля, 2018 - 10:16:59 - перейти к сообщению
а где мне ту директорию взять
4. Vladimir Kheifets - 12 Апреля, 2018 - 13:10:55 - перейти к сообщению
php2 пишет:
а где мне ту директорию взять

Добрый день! Из Вашего кода видно, что в директории, в которой работает PHP-скрипт
должна быть поддиректория "pics" и в ней должны быть jpg-файлы.
Если её нет, то нужно её создать и записать в неё файлы.
Так можно увидеть, есть ли у Вас поддиректория "pics" :
PHP:
скопировать код в буфер обмена
  1. $dh = new DirectoryIterator(dirname(__FILE__));  
  2. foreach( $dh as $file )
  3. {
  4.   echo "$file<br>";
  5. }

Удачи!
5. Гость - 13 Апреля, 2018 - 09:00:36 - перейти к сообщению
Мне нужно создать папку pics и там поместить картинки?
6. Гость - 15 Апреля, 2018 - 17:11:00 - перейти к сообщению
как быть
7. Гость - 16 Апреля, 2018 - 10:17:32 - перейти к сообщению
пожалуйста
8. andrewkard - 16 Апреля, 2018 - 11:54:51 - перейти к сообщению
php2 пишет:
Мне нужно создать папку pics и там поместить картинки?

да

 

Powered by ExBB FM 1.0 RC1