Autor | Zpráva | ||
---|---|---|---|
Mája Profil |
#1 · Zasláno: 2. 12. 2013, 18:56:01
Našla jsem tento skript níže, který by se asi nejvíce hodil k mému účelu (něco podobného tomto). Jenže nevím, jak udělat, aby se obrázky neopakovali.
Také mi příjde nepraktické řešení s array. Když budu chtít např. zobrazit 10 obrázků s popisy, tak podle toho skriptu musím mýt 10x $ads_array_něco. Dá se nějak udělat, aby se data brala pouze z jedné řady array? <?php // Random Image With Link // Blog Tycoon // http://getbutterfly.com/ // // Usage: // // Save this file as ads.php and use the include function to call it inside your web site function display_random_img($array) { $key = rand(0 , count($array) -1); $link_url = $array[$key]['url']; $alt_tag = $array[$key]['alt']; $random_img_url = $array[$key]['img_url']; list($img_width, $img_height) = getimagesize($random_img_url); return "<a href=\"$link_url\"><img src=\"$random_img_url\" width=\"$img_width\" height=\"$img_height\" alt=\"$alt_tag\" /></a>"; } // Edit the following values accordingly $ads_array = array( array( 'url' => 'http://www.google.com/', 'alt' => 'Google', 'img_url' => 'images/1.png' ), array( 'url' => 'http://www.yahoo.com/', 'alt' => 'Yahoo!', 'img_url' => 'images/2.png' ), array( 'url' => 'http://www.msn.com/', 'alt' => 'MSN', 'img_url' => 'images/3.png' ) ); $ads_array_1 = array( // add or remove accordingly array( 'url' => 'http://www.google.com/', 'alt' => 'Google', 'img_url' => 'images/1.png' ), array( 'url' => 'http://www.yahoo.com/', 'alt' => 'Yahoo!', 'img_url' => 'images/2.png' ), array( 'url' => 'http://www.msn.com/', 'alt' => 'MSN', 'img_url' => 'images/3.png' ) ); echo display_random_img($ads_array); echo display_random_img($ads_array_1); // add or remove accordingly ?> |
||
juriad Profil |
#2 · Zasláno: 2. 12. 2013, 20:04:04
<?php function display_random_imgs($array, $cnt) { if($cnt <= 0) return ""; if($cnt > count($array)) $cnt = count($array); $rnds = shuffle($array); $links = array(); for($i = 0; $i < $cnt; $i++) { $img = $array[$i]; list($width, $height) = getimagesize($img['src']); $link = "<a href=\"$img[href]\">\n"; $link .= " <img src=\"$img[src]\" width=\"$width\" height=\"$height\" alt=\"$img[alt]\">\n"; $link .= "</a>"; $links[] = $link; } return implode("\n", $links); } $ads_array = array( array( 'href' => 'http://www.google.com/', 'alt' => 'Google', 'src' => 'images/1.png' ), array( 'href' => 'http://www.yahoo.com/', 'alt' => 'Yahoo!', 'src' => 'images/2.png' ), array( 'href' => 'http://www.msn.com/', 'alt' => 'MSN', 'src' => 'images/3.png' ) ); echo display_random_imgs($ads_array, 4); ?> |
||
Mája Profil |
#3 · Zasláno: 2. 12. 2013, 20:48:44
juriad:
Jé, děkuju mockrát, funguje to. Ještě se chci prosím zeptat, dá se nějak udělat, aby se každá karta zobrazovala samostatně na určitém místě na stránce? Například, abych mohla k první kartě dát "minulost", k druhé "přítomnost" atd.. Prostě, aby každá měla nějaký zástupný php kod. Nevím jestli to vysvětluji správně. Něco jako: <h1>minulost</h1> <?php echo display_random_imgs1th($ads_array, 1); ?> <h1>přítomnost</h1> <?php echo display_random_imgs2th($ads_array, 1); ?> <h1>budoucnost</h1> <?php echo display_random_imgs3th($ads_array, 1); ?> |
||
juriad Profil |
#4 · Zasláno: 2. 12. 2013, 20:53:31
Já ten požadavek očekával :) Podívej se na vyznačené změny a způsob použití.
<?php function display_random_imgs($array, $cnt) { if($cnt <= 0) return array(); if($cnt > count($array)) $cnt = count($array); $rnds = shuffle($array); $links = array(); for($i = 0; $i < $cnt; $i++) { $img = $array[$i]; list($width, $height) = getimagesize($img['src']); $link = "<a href=\"$img[href]\">\n"; $link .= " <img src=\"$img[src]\" width=\"$width\" height=\"$height\" alt=\"$img[alt]\">\n"; $link .= "</a>"; $links[] = $link; } return $links; } $ads_array = array( array( 'href' => 'http://www.google.com/', 'alt' => 'Google', 'src' => 'images/1.png' ), array( 'href' => 'http://www.yahoo.com/', 'alt' => 'Yahoo!', 'src' => 'images/2.png' ), array( 'href' => 'http://www.msn.com/', 'alt' => 'MSN', 'src' => 'images/3.png' ) ); $random_ads = display_random_imgs($ads_array, 3); ?> <h1>minulost</h1> <?php echo $random_ads[0]; ?> <h1>přítomnost</h1> <?php echo $random_ads[1]; ?> <h1>budoucnost</h1> <?php echo $random_ads[2]; ?> |
||
Mája Profil |
#5 · Zasláno: 2. 12. 2013, 21:05:19
No vidíš, já chci udělat program pro věštění a ty už věštec jsi :)
Opravdu ti moc děkuji. |
||
Časová prodleva: 7 let
|
|||
pajis Profil * |
#6 · Zasláno: 18. 1. 2021, 18:21:58
pajis:
vypadá to dobře |
||
Časová prodleva: 3 roky
|
0