Хочу отобразить три три случайно выбранных картинки Использую следующий код: <?php $pictures = array('tire.jpg','oil.jpg','spurk_plug.jpg','door.jpg','door2.jpg', 'steering_wheel_2.jpg','thermostat.jpg','wiper_blade.jpg','gasket.jpg','brake_pad', 'oil2.jpg','steering_wheel.jpg'); shuffle($pictures); ?> <html> <head> <title>Автозапчасти </title> </head> <body> <center> <h1>Автозапчасти </h1> <table width = 100%> <tr> <?php for ( $i = 0; $i < 3;$i ++ ) { echo '<td align = "center"><img src=\"'; echo $pictures[$i]; echo '"width = "100" height = "100"></td>'; } ?> </tr> </table> </center> </body> </html> Вместо самих картинок выводится Автозапчасти Изображение Изображение Изображение Сами картинки не показываются.В чем может быть дело?(картинки находятся там же,где и сам php документ Заранее всем спасибо
правой кнопкой ткни, и посмотри какой путь браузер видит. есть ли там картинка? если картинка есть, то она покажется 100% =) так что тут думать нечего.
Вот исходный код страницы </head> <body> <center> <h1>Автозапчасти от Боба</h1> <table width = 100%> <tr> <td align = "center"><img src=\ "door2.jpg"width = "100" height = "100"></td><td align = "center"><img src=\ "thermostat.jpg"width = "100" height = "100"></td><td align = "center"><img src=\ "steering_wheel_2.jpg"width = "100" height = "100"></td> </tr> </table> </center> </body> </html> Но сами картинки не отображаются.Может глюк браузера?(Оперу использую)Хотя проверял и в Google Chrome и в Explorer - та же картина
Удалил,осталось: <?php $pictures = array('tire.jpg', 'oil.jpg', 'spark_plug.jpg', 'door.jpg', 'steering_wheel.jpg', 'thermostat.jpg', 'wiper_blade.jpg', 'gasket.jpg', 'brake_pad.jpg'); shuffle($pictures); ?> <html> <head> <title>Автозапчасти от Боба</title> </head> <body> <center> <h1>Автозапчасти от Боба</h1> <table width = 100%> <tr> <?php for ( $i = 0; $i < 3; $i++ ) { echo '<td align="center"><img src="'; echo $pictures[$i]; echo '"width="100" height="100"></td>'; } ?> </tr> </table> </center> </body> </html> Из всех картинок показывает только одну-tire.jpg,остальные почему то нет( (имена проверял,думал может с именем ошибка)
проверяй имена и пути. У меня всё корректно отображает. Может быть с большой/маленькой буквы что-то написано. Или лежит не в корне, а в другом каталоге
tommyangelo Бился над этим,потом взял исходник,который шел к книге Лары Томсон(сейчас по ней учусь).Когда заменил свои рисунки теми,что были в папке с исходником,все нормально отобразилось.Странно как-то,как может из-за картинок глючить.Я в недоумении... Ладно,спасибо всем за помощь
tommyangelo Кодировка в обоих документах была ANSI,насчет имен - проверял несколько раз.Прям чудеса какие - то) Даже полностью заменял свой код на тот,что с примера был - все равно,пока картинки не поменял,отображалась только одна, остальные почему то не хотели...
не может))) Ты лучше такую штуку запусти - PHP: <?php $dir = "/tmp/"; // Открыть заведомо существующий каталог и начать считывать его содержимое if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { print "Файл: $file : тип: " . filetype($dir . $file) . "\n"; } closedir($dh); } } ?> пройдись по каталогу (задается в переменной $dir) и посмотри как у тебя php воспринимает имена файлов. И сравни с тем - какие имена файлов ты в массиве записываешь
В папке D:\Files два ткстшника - orders.txt и orders2.txt <?php $dir = "D:/Files/"; // Открыть заведомо существующий каталог и начать считывать его содержимое if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { print "Файл: $file : тип: " . filetype($dir . $file) . "\n"; } closedir($dh); } } ?> Результат: Файл: . : тип: dir Файл: .. : тип: dir Файл: orders.txt : тип: file Файл: orders2.txt : тип: file Какая - то фигня, или так и должно быть?
tommyangelo нет,конечно)))В корневом каталоге лежали картинки и остальные пхп файлы. Потом кинул все в отдельную папку,все равно ниче не отобразилось) Вот проверил,используя настоящую папку: <?php $dir = "C:/www/tm/pictures2/"; // Открыть заведомо существующий каталог и начать считывать его содержимое if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { print "Файл: $file : тип: " . filetype($dir . $file) . "\n"; } closedir($dh); } } ?> Вывело: Файл: . : тип: dir Файл: .. : тип: dir Файл: bobs_front_page.php : тип: file Файл: brake_pad.jpeg : тип: file Файл: brake_pad.jpg : тип: file Файл: door.jpeg : тип: file Файл: door.jpg : тип: file Файл: gasket.jpeg : тип: file Файл: gasket.jpg : тип: file Файл: oil.jpeg : тип: file Файл: oil.jpg : тип: file Файл: spark_plug.jpeg : тип: file Файл: spark_plug.jpg : тип: file Файл: steering_wheel.jpeg : тип: file Файл: steering_wheel.jpg : тип: file Файл: thermostat.jpeg : тип: file Файл: thermostat.jpg : тип: file Файл: tire.jpg : тип: file Файл: wiper_blade.jpeg : тип: file Файл: wiper_blade.jpg : тип: file Может в этом проблемма и заключалась? Опа,поставил везде jpeg и картинки отобразились Значит,проблема решена,что радует Всем еще раз спасибо!!!
Валерий_paparazzi Дык а я говорю что - вместо отображения - использую эту функцию и посмотри как php имена твоих картинок воспринимает
tommyangelo Спасибо еше раз.Кстати,можешь обьяснить эту строку: while (($file = readdir($dh)) !== false)
http://ua.php.net/manual/en/function.readdir.php Там все ответы ))) по простому - проход по папке и чтение информации о каждом файле в переменную $file. Когда файлов не останется (вернется false) - выходим из цикла