/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
array_rand og brugerdefineret function
Fra : Peter Westh


Dato : 10-11-10 07:05

Hej,

Jeg er ikke særlig velbevandret i php, så dette spørgsmål om måske
banalt men hey, så meget desto større chance for at få et brugbart
svar.

Jeg har lavet et script som viser tre tilfældige billeder med
tilhørende links og alt-tekst. Jeg har gjort det sådan her:

<?php
$boern = array("adrian", "agnethe", "alma", "anton", "david", "emil",
"jon", "max", "marcus", "oskar", "christian", "victor", "lewis",
"camilla", "silvia", "zacharias");
$rand_keys = array_rand($boern, 3);
$link ='<a href=\'../danmark/historier/'; //definerer stien til links
$billeder ='<img src=\'../images/personer/roterende_forsiden/'; //
definerer stien til billedfiler

//1. billede
echo $link;
echo $boern[$rand_keys[0]];
echo '.php\'>';
echo $billeder;
echo $boern[$rand_keys[0]];
echo '.jpg\' alt=\'';
echo ucwords($boern[$rand_keys[0]]); //Skriver Alt-teksten med stort
begyndelsesbogstav
echo '\'></a>';

//2. billede
echo $link;
echo $boern[$rand_keys[1]];
echo '.php\'>';
echo $billeder;
echo $boern[$rand_keys[1]];
echo '.jpg\' alt=\'';
echo ucwords($boern[$rand_keys[1]]);
echo '\'></a>';

//3. billede
echo $link;
echo $boern[$rand_keys[2]];
echo '.php\'>';
echo $billeder;
echo $boern[$rand_keys[2]];
echo '.jpg\' alt=\'';
echo ucwords($boern[$rand_keys[2]]);
echo '\'></a>';
?>

Det virker som det skal, men det forekommer mig at det må kunne gøres
uden alle de gentagelser ved at definere en funktion, der gør det
hele. Det ville gøre det lettere at ændre i koden, f.eks. øge antallet
af viste billeder.

Det jeg ikke kan gennemskue er hvordan jeg får array_rand og en
brugerdefineret funktion til at spille sammen.

Er der nogen der kan pege mig i den rigtige retning?

MVH

Peter

 
 
Karl-Arne Gjersøyen (10-11-2010)
Kommentar
Fra : Karl-Arne Gjersøyen


Dato : 10-11-10 15:53

skrev Peter Westh:
> Hej,
>
> Jeg er ikke særlig velbevandret i php, så dette spørgsmål om måske
> banalt men hey, så meget desto større chance for at få et brugbart
> svar.
>
> Jeg har lavet et script som viser tre tilfældige billeder med
> tilhørende links og alt-tekst. Jeg har gjort det sådan her:
>
> <?php
> $boern = array("adrian", "agnethe", "alma", "anton", "david", "emil",
> "jon", "max", "marcus", "oskar", "christian", "victor", "lewis",
> "camilla", "silvia", "zacharias");
> $rand_keys = array_rand($boern, 3);
> $link ='<a href=\'../danmark/historier/'; //definerer stien til links
> $billeder ='<img src=\'../images/personer/roterende_forsiden/'; //
> definerer stien til billedfiler
>
> //1. billede
> echo $link;
> echo $boern[$rand_keys[0]];
> echo '.php\'>';
> echo $billeder;
> echo $boern[$rand_keys[0]];
> echo '.jpg\' alt=\'';
> echo ucwords($boern[$rand_keys[0]]); //Skriver Alt-teksten med stort
> begyndelsesbogstav
> echo '\'></a>';
>
> //2. billede
> echo $link;
> echo $boern[$rand_keys[1]];
> echo '.php\'>';
> echo $billeder;
> echo $boern[$rand_keys[1]];
> echo '.jpg\' alt=\'';
> echo ucwords($boern[$rand_keys[1]]);
> echo '\'></a>';
>
> //3. billede
> echo $link;
> echo $boern[$rand_keys[2]];
> echo '.php\'>';
> echo $billeder;
> echo $boern[$rand_keys[2]];
> echo '.jpg\' alt=\'';
> echo ucwords($boern[$rand_keys[2]]);
> echo '\'></a>';
> ?>
>
> Det virker som det skal, men det forekommer mig at det må kunne gøres
> uden alle de gentagelser ved at definere en funktion, der gør det
> hele. Det ville gøre det lettere at ændre i koden, f.eks. øge antallet
> af viste billeder.
>
> Det jeg ikke kan gennemskue er hvordan jeg får array_rand og en
> brugerdefineret funktion til at spille sammen.
>
> Er der nogen der kan pege mig i den rigtige retning?
>
> MVH
>
> Peter

Hei Peter.
Ta enn titt på php manualen her:
http://no2.php.net/manual/en/function.extract.php

Det kan gi deg en rask vei til å gjøre koden din kortere uten å gjenta
koden for ett og ett bilde.

Mvh Karl-Arne
--
My Home Pages: http://www.karl-arne.name/

scootergrisen (10-11-2010)
Kommentar
Fra : scootergrisen


Dato : 10-11-10 16:53

Prøv med foreach().

Den gennemgår automatisk det antal data der er i dit array $boern.

foreach($rand_keys as $value){
echo $link;
echo $boern[$value];
echo '.php\'>';
echo $billeder;
echo $boern[$value];
echo '.jpg\' alt=\'';
echo ucwords($boern[$value]);
echo '\'></a>';
}

Også skriv alt="" i stedet for alt=''
På en måde undgår du også at bruge \' så kan du bare skrive "
Det samme ved href='' og src=''

Den 10-11-2010 15:04, Peter Westh skrev:
> Hej,
>
> Jeg er ikke særlig velbevandret i php, så dette spørgsmål om måske
> banalt men hey, så meget desto større chance for at få et brugbart
> svar.
>
> Jeg har lavet et script som viser tre tilfældige billeder med
> tilhørende links og alt-tekst. Jeg har gjort det sådan her:
>
> <?php
> $boern = array("adrian", "agnethe", "alma", "anton", "david", "emil",
> "jon", "max", "marcus", "oskar", "christian", "victor", "lewis",
> "camilla", "silvia", "zacharias");
> $rand_keys = array_rand($boern, 3);
> $link ='<a href=\'../danmark/historier/'; //definerer stien til links
> $billeder ='<img src=\'../images/personer/roterende_forsiden/'; //
> definerer stien til billedfiler
>
> //1. billede
> echo $link;
> echo $boern[$rand_keys[0]];
> echo '.php\'>';
> echo $billeder;
> echo $boern[$rand_keys[0]];
> echo '.jpg\' alt=\'';
> echo ucwords($boern[$rand_keys[0]]); //Skriver Alt-teksten med stort
> begyndelsesbogstav
> echo '\'></a>';
>
> //2. billede
> echo $link;
> echo $boern[$rand_keys[1]];
> echo '.php\'>';
> echo $billeder;
> echo $boern[$rand_keys[1]];
> echo '.jpg\' alt=\'';
> echo ucwords($boern[$rand_keys[1]]);
> echo '\'></a>';
>
> //3. billede
> echo $link;
> echo $boern[$rand_keys[2]];
> echo '.php\'>';
> echo $billeder;
> echo $boern[$rand_keys[2]];
> echo '.jpg\' alt=\'';
> echo ucwords($boern[$rand_keys[2]]);
> echo '\'></a>';
> ?>
>
> Det virker som det skal, men det forekommer mig at det må kunne gøres
> uden alle de gentagelser ved at definere en funktion, der gør det
> hele. Det ville gøre det lettere at ændre i koden, f.eks. øge antallet
> af viste billeder.
>
> Det jeg ikke kan gennemskue er hvordan jeg får array_rand og en
> brugerdefineret funktion til at spille sammen.
>
> Er der nogen der kan pege mig i den rigtige retning?
>
> MVH
>
> Peter

Peter Westh (10-11-2010)
Kommentar
Fra : Peter Westh


Dato : 10-11-10 11:47

On 10 Nov., 16:53, scootergrisen <scootergri...@gmail.com> wrote:
> Pr v med foreach().

Det var præcis det jeg var ude efter, tak!

Peter

scootergrisen (10-11-2010)
Kommentar
Fra : scootergrisen


Dato : 10-11-10 22:40

Det bliver så lige 100 kroner.

Den 10-11-2010 19:46, Peter Westh skrev:
> On 10 Nov., 16:53, scootergrisen<scootergri...@gmail.com> wrote:
>> Pr v med foreach().
>
> Det var præcis det jeg var ude efter, tak!
>
> Peter

scootergrisen (10-11-2010)
Kommentar
Fra : scootergrisen


Dato : 10-11-10 22:46

Jeg kan anbefale dig at downloade CHM versionen af manualen hvis du
bruger windows.
http://www.php.net/download-docs.php

Den er rigtig godt hvis du lige skal slå en funktion op for at se
hvordan man bruger den.

Du kan også gøre det på http://www.php.net/ men det hurtigere hvis du
har manualen på din computer.

Den 10-11-2010 19:46, Peter Westh skrev:
> On 10 Nov., 16:53, scootergrisen<scootergri...@gmail.com> wrote:
>> Pr v med foreach().
>
> Det var præcis det jeg var ude efter, tak!
>
> Peter

Martin (11-11-2010)
Kommentar
Fra : Martin


Dato : 11-11-10 09:17

On 10-11-2010 22:45, scootergrisen wrote:
> Jeg kan anbefale dig at downloade CHM versionen af manualen hvis du
> bruger windows.
> http://www.php.net/download-docs.php

Det kan jeg ikke anbefale - man får ikke alle de lækre bruger kommentar
med, som kan være meget værdifulde - og inspirende

>
> Den er rigtig godt hvis du lige skal slå en funktion op for at se
> hvordan man bruger den.
>
> Du kan også gøre det på http://www.php.net/ men det hurtigere hvis du
> har manualen på din computer.
>
> Den 10-11-2010 19:46, Peter Westh skrev:
>> On 10 Nov., 16:53, scootergrisen<scootergri...@gmail.com> wrote:
>>> Pr v med foreach().
>>
>> Det var præcis det jeg var ude efter, tak!
>>
>> Peter


Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste