Autor Zpráva
Mája
Profil
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
<?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
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
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
No vidíš, já chci udělat program pro věštění a ty už věštec jsi :)
Opravdu ti moc děkuji.
pajis
Profil *
pajis:
vypadá to dobře

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0