| |
|
|
| | Добрый день,
я в пхп не особо соображаю, скажу сразу)
не моглибы мне помочь со скриптиком?
есть папка, в ней картинки 01.jpg....30.jpg мне нужно их рандомно вывести(допустим только штук 5) но к каждой картинке есть свой уникальный урл
поиск дал результаты
<?
// сканируемый директорий
$dir = './';
// получаем список файлов по маске '*' - все файлы
foreach (glob($dir."*") as $filename) {
// выводим полный путь файла
echo "[".dirname(realpath($filename))."][".basename(realpath($filename))."] size " . filesize($filename) . " byte(s)\n";
}
?>
|
но это мы толлько просканили папку, а как теперь рандомно вывести и присвоить урл?
спасибо за внимание | |
| |
|
|
| |
|
|
| |
для: MNU
(13.06.2006 в 12:14)
| | |
<?php
// сканируемый директорий
$dir = './';
// сколько картинок выбрать
$imgs = 5;
// Если версия PHP меньше 4.2.0 то раскомментировать следующую строку
// srand((float)microtime() * 1000000);
// получаем список файлов по маске '*' - все файлы
$files = shuffle(glob($dir.'*'));
for($i=0; $i<5; $i++)
{
// выводим полный путь файла
echo "[".dirname(realpath($files[$i]))."][".basename(realpath($files[$i]))."] size " . filesize($files[$i]) . " byte(s)\n";
}
?>
|
| |
| |
|
|
| |
|
|
| |
для: WebTech
(13.06.2006 в 13:00)
| | | мне надо не полный путь, а допустим картинка 01.jpg имеет адрес http://123.ru картинка 02.jpg имеет урл http://456.ru и тд | |
| |
|
|
| |
|
|
| |
для: MNU
(13.06.2006 в 13:13)
| | | Тогда не очень понятно.
Как понять, что каждая картинка имеет свой url? Т.е. это понятно, что может иметь. Как назначаются эти урлы? Если картинки расположены в одной папке на сервере, то может просто нужно просто вывести картинки с урлом, а не с файловым путем, т.е. в виде
http://123.ru/images/01.jpg
http://123.ru/images/02.jpg
...
http://123.ru/images/30.jpg | |
| |
|
|
| |
|
|
| |
для: WebTech
(13.06.2006 в 13:47)
| | | нет
вот есть папка, в ней картинки, 01/02/03,,,,30
картинка 01 имеет урл(т.е.
<a href=http://123.ru><img src=01.jpg border=0></a>
| ) картинка 02 имеет урл,(т.е.
<a href=http://456.ru><img src=02.jpg border=0></a>
| ) | |
| |
|
|
| |
|
|
| |
для: MNU
(13.06.2006 в 14:03)
| | | и где находится информация о том, какой урл какой картинке соответствует? | |
| |
|
|
| |
|
|
| |
для: MNU
(13.06.2006 в 14:03)
| | | >но к каждой картинке есть свой уникальный урл
Где хранится это уникальный урл? Каким образом он сопоставляется с картинкой? | |
| |
|
|
| |
|
|
| |
для: tuder
(13.06.2006 в 14:12)
| | | вот этого я уж не знаю, поэтому и прошу помощи | |
| |
|
|
| |
|
|
| |
для: MNU
(13.06.2006 в 19:00)
| | | Я сделал проще! Имена файлов и есть урл!
Вот, посмотри www.3dmir.ru справа! | |
| |
|
|
| |
|
|
| |
для: Diablo_
(13.06.2006 в 21:23)
| | | так в принципе можно, но это с изподвывертом будет.. | |
| |
|
|
| |
|
|
| |
для: MNU
(13.06.2006 в 22:39)
| | | Зато не надо хранить урлы в базе или файле.
Делать имена можно в виде
www_site_ru.jpg
www_subdomen_site_ru.jpg
После получения списка файлов останется только вывести
$url=str_replace(".jpg", "/", $filename);
$url="http://".str_replace("_", ".", $url);
echo "<a href='$url'><img src='./$filename'></a>";
Иначе создавай файл с именами файлов и урлами ему соответствующими, открывай файл, затягивай в массив, после считывания каталога рисунков при выводе каждого делай поиск нужного элемента в массиве по имени файла и подставляй из другого элемента массива соответствующий урл... Или аналогично в базе. | |
| |
|
|
| |
|
|
| |
для: tuder
(14.06.2006 в 08:28)
| | | яб с удовольствием сделал так как ты сказал, но ссылки в име файлах нельзя использовать "/"..
а то что ты сказаля не знаю как делать(и использовать бд не желательно..) | |
| |
|
|
| |
|
|
| |
для: MNU
(14.06.2006 в 09:56)
| | | Использовать "/" нельзя, но можно, к пример, сделать так:
www_site_ru~1234~ggg.jpg
$url=str_replace(".jpg", "/", $filename);
$url=str_replace("~", "/", $filename);
$url="http://".str_replace("_", ".", $url);
echo "<a href='$url'><img src='./$filename'></a>"; | |
| |
|
|
| |
|
|
| |
для: MNU
(13.06.2006 в 12:14)
| | | все еще актуально | |
| |
|
|
| |
|
|
| |
для: MNU
(14.06.2006 в 22:27)
| | | Вообще это делается через базу данных, во первых это эффективно и городить нечего! буквально у Вас будет 2 поля в одном адрес картинки в другом url куда она должна направлять, и это все потом выводится в Документ(php) | |
| |
|
|
| |
|
|
| |
для: kadet
(15.06.2006 в 10:21)
| | | NFR , если другого варианта не будет, придеться рассматривать твой
kadet, зачем лишние запросы к БД? а если она повиснет?(что кстати, довольно часто бывает у хостеров)
мб можно как-то это хранить, например, в текстовом файле? | |
| |
|
|
| |
|
|
| |
для: MNU
(15.06.2006 в 20:00)
| | | gifs.txt:
www.blabla.com/gif.jpg|01.jpg
www.blabla.com/gif2.jpg|02.jpg
www.blabla.com/gi3f.jpg|03.jpg
www.blabla.com/gif4.jpg|04.jpg
<?php
$gifs=file('gifs.txt');
for($i=0;$i<5;$i++){
$r=rand(0,count($gifs));
$gifs[$r]=trim("|",$gifs[$r]);
echo "<A href='".$gifs[$r][0]."'><img src='some/directory/".$gifs[$r][1]."'></a>";
}
?>
Чтото в этом роде.
Пояснить надо? | |
| |
|
|
| |
|
|
| |
для: valenok
(15.06.2006 в 20:16)
| | | А если в файле будет 1000 строк!:) то весить он будет соответственно, чем больше весит, тем дольше открывает!
Так же, тебе нужно будет, по мимо добавления картинка на сайт, ещё и базу обнавлять (добовлять туда запись), а зачем делать лишнии действия?
Так же, зачем делать полные имена файлов?
просто напиши переменную с адресом!
Вот весь мой код с моего сайта:
<?
//------------------------------
$images = glob('image/tutor/*.jpg');
$tut="index.php?id=";
$image2=$images[ mt_rand(0, count($images)-1) ];
$file_image=basename($image2,".jpg");
echo "<a href=$tut$file_image><img src=$image2 border=0></a>";
$URL=$file_image; include "modules/random_tutor/counter_url_tutor.inc";
//-------------------------------
?>
|
Всё просто до идеатизма и некаких лишних действий! | |
| |
|
|
| |
|
|
| |
для: valenok
(15.06.2006 в 20:16)
| | | Можно просто создать текстовые документы как имя файла т.е.
В папке
01.jpg
02.jpg
03.jpg
..
30.jpg
|
К ним создать
01.txt
02.txt
03.txt
..
30.txt
|
где будет храниться адрес. Никакой обработки не надо, просто file_get_contents($file); выбираем и все. | |
| |
|
|
| |
|
|
| |
для: Ziq
(15.06.2006 в 22:41)
| | | Но всё равно, получается, что нужно будет добавлять 2 файла на сервер!:)
Чем больше файлов, тем больше бардак!:)
PHP сделали не только для того, что бы файлы открывать! | |
| |
|
|
| |
|
|
| |
для: MNU
(13.06.2006 в 12:14)
| | |
<?
$kol = 2;
$arr = file("url.txt");
if (!$arr)
{
echo "Файла нет";
exit;
}
foreach($arr as $line)
{
$str[$k] = explode(";",$line);
$k++;
}
shuffle($str);
for($i=0;$i<$kol;$i++)
{
echo "<a href=http://".$str[$i][1]."><img src=pic/".$str[$i][0]." alt=".$str[$i][0]."-".$str[$i][1]."></a>";
}
?>
|
url.txt
01.jpg;www.ya.ru
02.jpg;www.rambler.ru
03.jpg;www.aport.ru
|
| |
| |
|
|
| |
|
|
| |
для: P@Sol
(16.06.2006 в 14:05)
| | | спасибо Паш
все работает ;) | |
| |
|
|
| |
|
|
| |
для: MNU
(16.06.2006 в 14:22)
| | | Не издевайся. Я тебе то и написал.
И работать мой должен быстрей, там только один for | |
| |
|
|
| |
|
|
| |
для: valenok
(16.06.2006 в 14:30)
| | | видимо мой код показался ему более читабельнее:) | |
| |
|
|
| |
|
|
| |
для: P@Sol
(16.06.2006 в 16:55)
| | | С этим не согласиться не могу...
Ну выбирать ему.. | |
| |
|
|
| |
|
|
| |
для: MNU
(13.06.2006 в 12:14)
| | | . | |
| |
|
|