/ 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
2 php spørgsmål
Fra : Rasmus Lauritsen


Dato : 21-12-02 23:17

Hejsa i gruppen.

Jeg har lige et par spørgsmål angående php.

Hvordan laver man farveskift i tabeller, ligesom på
http://moons.dk/war.list.php
Jeg mener det farveskift de har ved hver clanwar, som de har spillet.

Det andet spørgsmål er..

Er det muligt at lave et upload script, hvor man uploader et billede og
serveren selv laver thumb og viser det på en html side ?

mvh.

Rasmus Lauritsen





 
 
Jesper Brunholm (21-12-2002)
Kommentar
Fra : Jesper Brunholm


Dato : 21-12-02 23:26

Rasmus Lauritsen wrote:
> Hejsa i gruppen.
>
> Jeg har lige et par spørgsmål angående php.
>
> Hvordan laver man farveskift i tabeller, ligesom på
> http://moons.dk/war.list.php
> Jeg mener det farveskift de har ved hver clanwar, som de har spillet.

Ved at bruge modulo ("hvad er resten hvis man deler det her tal med det
her andet tal"):
if($i %2 == 0){ /*et lige tal*/
en farve baggrund på liniens td'er
}else{
en anden farve baggrund
}

>
> Det andet spørgsmål er..
>
> Er det muligt at lave et upload script, hvor man uploader et billede og
> serveren selv laver thumb og viser det på en html side ?

kort svar:
Ja

Langt svar:
ja - se på imagemagick eller image-funktionerne som kræver gd-lib (de
følger med i en del installationer).
Du bør dog være "sød" ved din server og lave thumbnails når du uploader
billederne i stedet for hver gang de skal vises (1 kontra 400 gange)

mvh

Jesper Brunholm


Ole (22-12-2002)
Kommentar
Fra : Ole


Dato : 22-12-02 23:10

"Jesper Brunholm" <nospam@brunholm-scharff.dk> skrev i en meddelelse
news:3e04ea6a$1@news.wineasy.se...
> Langt svar:
> ja - se på imagemagick eller image-funktionerne som kræver gd-lib (de
> følger med i en del installationer).

Husk dog at tjekke hos din udbyder om det er muligt at have imagemagic eller
netpbm liggende, så du kan gøre dem eksekverbare. Jeg endte med kun at kunne
bruge GD lib.

Ole



Jacob Bunk Nielsen (23-12-2002)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 23-12-02 01:43

Jesper Brunholm <nospam@brunholm-scharff.dk> writes:

> Ved at bruge modulo ("hvad er resten hvis man deler det her tal med
> det her andet tal"):
> if($i %2 == 0){ /*et lige tal*/
> en farve baggrund på liniens td'er
> }else{
> en anden farve baggrund
> }

Det synes jeg er en lettere klodset løsning hvis man kun skal skifte
mellem to farver. Der plejer jeg at bruge noget i stil med:

$color = ($color == "farve1" ? "farve2" : "farve1");

Så er man sikret imod mystiske overflows og andre sjove ting når man
skifter til et andet miljø hvor den slags kan forekomme.

Nåh ja, så er det også mere kompakt, og dejlig let at læse, hvis man
som jeg, har kodet en masse C

--
Jacob - www.bunk.cc
Tact is the art of making a point without making an enemy.

Jesper Brunholm (23-12-2002)
Kommentar
Fra : Jesper Brunholm


Dato : 23-12-02 09:18

Jacob Bunk Nielsen wrote:
> Jesper Brunholm <nospam@brunholm-scharff.dk> writes:
>
>
>>Ved at bruge modulo ("hvad er resten hvis man deler det her tal med
>>det her andet tal"):
>>if($i %2 == 0){ /*et lige tal*/
>> en farve baggrund på liniens td'er
>>}else{
>> en anden farve baggrund
>>}
>
>
> Det synes jeg er en lettere klodset løsning hvis man kun skal skifte
> mellem to farver. Der plejer jeg at bruge noget i stil med:

Nu var formålet i lige så høj grad at forklare hvad der foregår, også
for en som ikke har kodet en masse c

Derudover må jeg blankt tilstå at jeg bedre kan li syntaksen med
tydeligt if og else, men nok blot fordi jeg ikke rigtigt har noget c bag
mig

> $color = ($color == "farve1" ? "farve2" : "farve1");
>
> Så er man sikret imod mystiske overflows og andre sjove ting når man
> skifter til et andet miljø hvor den slags kan forekomme.

Det må jeg lige forstå - der kan ske noget mystisk hvis man bruger den
syntaks i... hvilken sammenhæng?

> Nåh ja, så er det også mere kompakt, og dejlig let at læse, hvis man
> som jeg, har kodet en masse C

Det andet kan da også let "kompakteres", og miste noget af sin
overskuelighed . Jeg vil ikke give dig ret i at det"c-syntaksen" er
let at læse, eller hurtig at overskue, men den fylder meget lidt, og jeg
har da også brugt den sammen med sprint som vist i Morten BNs julekalender:

<http://mbn.dk/julekalender/5-2000>

Endelig må jeg (dumt) spørge hvor jeg (og begynderen som vi rådgiver)
finder dokumentation på hvordan c-syntaksen fungerer hvis vi ikke lige
forstod det 100% ud fra ovenstående. Jeg kan ikke finde det i "control
structures"


mvh og ønsker om en god jul

Jesper Brunholm


Jacob Bunk Nielsen (23-12-2002)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 23-12-02 11:19

Jesper Brunholm <nospam@brunholm-scharff.dk> writes:
> Jacob Bunk Nielsen wrote:
>
>> Det synes jeg er en lettere klodset løsning hvis man kun skal skifte
>> mellem to farver. Der plejer jeg at bruge noget i stil med:
>
> Nu var formålet i lige så høj grad at forklare hvad der foregår, også
> for en som ikke har kodet en masse c

Ja - men derfor skader det vel ikke at lære PHP, det er jo trods alt
en del af sproget ?-)

> Derudover må jeg blankt tilstå at jeg bedre kan li syntaksen med
> tydeligt if og else, men nok blot fordi jeg ikke rigtigt har noget c
> bag mig

Det kan jeg fint have forståelse for. Igen ville jeg blot vælge at
skrive:

if ($color == "farve1) {
$color = "farve2";
}
else {
$color = "farve1";
}

I stedet for din modulo-ting. Da jeg finder ovenstående endnu mere
læsevenligt (måske specielt for en begynder).

>> $color = ($color == "farve1" ? "farve2" : "farve1");
>> Så er man sikret imod mystiske overflows og andre sjove ting når man
>> skifter til et andet miljø hvor den slags kan forekomme.
>
> Det må jeg lige forstå - der kan ske noget mystisk hvis man bruger den
> syntaks i... hvilken sammenhæng?

Forstil dig fx følgende stykke C-kode:

char i = 0;
for (i=0;i<300;++i) {
if (i%2 == 0) { ... }
}

Her går dit farveskift godt på trods af at i overflower, løkken
stopper bare aldrig. Derfor siger jeg at man bør tænke over hvad man
bruger hvor.

Bruger du i%3 får du også et mystisk resultat for farveskiftet når i
overflower, og den letteste løsning vil så være at erklære i som int,
men hvad så senere? Skulle jeg vælge mellem 3 farver kunne man gøre:

char i = 0;
....
if (i=(i%3)) { ... }
....

Så kan du køre lige så langt du gider uden at have problemer med
farveskift og overflows, og uden at skulle erklære flere og større
variable end du behøver. Der skal selvsagt en anden stopbetingelse på
en eventuel løkke.

Jeg ved godt at PHP ikke har stærke typer, og man derfor får temmelig
meget hjælp til ikke at dumme sig, men det gør man ikke altid i andre
miljøer, og så synes jeg lige så godt at man kan tage de gode vaner
fra andre miljøer med sig til PHP.

> Endelig må jeg (dumt) spørge hvor jeg (og begynderen som vi rådgiver)
> finder dokumentation på hvordan c-syntaksen fungerer hvis vi ikke lige
> forstod det 100% ud fra ovenstående. Jeg kan ikke finde det i "control
> structures"

I manualen under expressions:
<http://dk.php.net/manual/en/language.expressions.php>.

--
Jacob - www.bunk.cc
System restarting, wait...

Jesper Brunholm (26-12-2002)
Kommentar
Fra : Jesper Brunholm


Dato : 26-12-02 14:56

Jacob Bunk Nielsen wrote:
> Jesper Brunholm <nospam@brunholm-scharff.dk> writes:

>>Nu var formålet i lige så høj grad at forklare hvad der foregår, også
>>for en som ikke har kodet en masse c

> Ja - men derfor skader det vel ikke at lære PHP, det er jo trods alt
> en del af sproget ?-)

Heyy - skal du hugge mine pointer?


>>Derudover må jeg blankt tilstå at jeg bedre kan li syntaksen med
>>tydeligt if og else, men nok blot fordi jeg ikke rigtigt har noget c
>>bag mig
>
> Det kan jeg fint have forståelse for. Igen ville jeg blot vælge at
> skrive:
>
> if ($color == "farve1) {
> $color = "farve2";
> }
> else {
> $color = "farve1";
> }
>
> I stedet for din modulo-ting. Da jeg finder ovenstående endnu mere
> læsevenligt (måske specielt for en begynder).

Det er da muligt, så skal du bare stadig have noget andet (foregående)
til definere $color ud fra lige og ulige.

> Jeg ved godt at PHP ikke har stærke typer, og man derfor får temmelig
> meget hjælp til ikke at dumme sig, men det gør man ikke altid i andre
> miljøer, og så synes jeg lige så godt at man kan tage de gode vaner
> fra andre miljøer med sig til PHP.

Det lyder logisk

>>Endelig må jeg (dumt) spørge hvor jeg (og begynderen som vi rådgiver)
>>finder dokumentation på hvordan c-syntaksen fungerer hvis vi ikke lige
>>forstod det 100% ud fra ovenstående. Jeg kan ikke finde det i "control
>>structures"
>
>
> I manualen under expressions:
> <http://dk.php.net/manual/en/language.expressions.php>.

ahh - kan du egentligt også forklare mig logikken bag at det ikke er
beskrevet sammen med control structures (på den linkede side ser jeg det
primært trukket frem som et eksempel, snarere end en dokumenteret funktion)?

mvh og tak

Jesper Brunholm


Jacob Bunk Nielsen (26-12-2002)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 26-12-02 18:03

Jesper Brunholm <nospam@brunholm-scharff.dk> writes:
> Jacob Bunk Nielsen wrote:
>
>> Det kan jeg fint have forståelse for. Igen ville jeg blot vælge at
>> skrive:
>> if ($color == "farve1") {
>> $color = "farve2";
>> }
>> else {
>> $color = "farve1";
>> }
>> I stedet for din modulo-ting. Da jeg finder ovenstående endnu mere
>> læsevenligt (måske specielt for en begynder).
>
> Det er da muligt, så skal du bare stadig have noget andet (foregående)
> til definere $color ud fra lige og ulige.

Nej, du er blot nødt til allerførst at sætte:

$color = "farve1";

(eller "farve2", alt afhængig af hvilken rækkefølger du bruger det i)

Så vil ovenstående kode skiftevis bruge "farve1" og "farve2". Men det
var måske blot det du mente?

Ellers var det åbenbart ikke så intuitivt let læseligt som jeg havde
regnet med. Vi tager lige et eksempel for at jeg er sikker på at vi
taler om det samme:

$color = "farve2";
while (cond) {
if ($color == "farve1") {
$color = "farve2";
}
else {
$color = "farve1";
}
print("farve er $color\n");
}

Her vil den så starte med "farve1", og så skifte mellem "farve1" og
"farve2".

>> [ om ( cond ? stmt : stmt ) i manualen ]
>> <http://dk.php.net/manual/en/language.expressions.php>.
>
> ahh - kan du egentligt også forklare mig logikken bag at det ikke er
> beskrevet sammen med control structures (på den linkede side ser jeg
> det primært trukket frem som et eksempel, snarere end en dokumenteret
> funktion)?

Fordi det er en statement (rvalue) og ikke en control structure

Måske er det lettere at forstå ved at sige at du ikke kan pakke andre
control structures ind i den. Du kan fx ikke skrive ting som:

( $foo == "bar" ?
if (...) {
...
}
else {
...
 }
:
while (...) {
...
}
)

Skulle du i øvrigt finde sådan noget interessant, så find et kursus i
oversætterteknik eller compilerdesign, det giver rigtig godt indblik i
hvordan programmeringssprog er opbygget, og hvordan de
fortolkes/oversættes.

--
Jacob - www.bunk.cc
We already sent around a notice about that.

Jesper Brunholm (26-12-2002)
Kommentar
Fra : Jesper Brunholm


Dato : 26-12-02 21:31

Jacob Bunk Nielsen wrote:
> Jesper Brunholm <nospam@brunholm-scharff.dk> writes:
>>Det er da muligt, så skal du bare stadig have noget andet (foregående)
>>til definere $color ud fra lige og ulige.
>
>
> Nej, du er blot nødt til allerførst at sætte:
>
> $color = "farve1";
>
> (eller "farve2", alt afhængig af hvilken rækkefølger du bruger det i)
>
> Så vil ovenstående kode skiftevis bruge "farve1" og "farve2". Men det
> var måske blot det du mente?

Nej - jeg må med skam melde at jeg ikke havde gennemskuet hvor smart det
var

> Ellers var det åbenbart ikke så intuitivt let læseligt som jeg havde
> regnet med. Vi tager lige et eksempel for at jeg er sikker på at vi
> taler om det samme:

Det gjorde vi skam - jeg tror at mine "vane-briller" var for tykke,
snarere end koden var svær at læse

>>>[ om ( cond ? stmt : stmt ) i manualen ]
>>><http://dk.php.net/manual/en/language.expressions.php>.
>>
>>ahh - kan du egentligt også forklare mig logikken bag at det ikke er
>>beskrevet sammen med control structures (på den linkede side ser jeg
>>det primært trukket frem som et eksempel, snarere end en dokumenteret
>>funktion)?
>
>
> Fordi det er en statement (rvalue) og ikke en control structure
>
> Måske er det lettere at forstå ved at sige at du ikke kan pakke andre
> control structures ind i den.

Det er det afgjort - tak for forklaringen

> Skulle du i øvrigt finde sådan noget interessant, så find et kursus i
> oversætterteknik eller compilerdesign, det giver rigtig godt indblik i
> hvordan programmeringssprog er opbygget, og hvordan de
> fortolkes/oversættes.

Mjoeeh - det gør jeg - men der er jo omvendt en klar grund til at jeg
ikke er uddannet datalog, så jeg tror jeg lader de ligge til jer som
synes det er så spændende så i bare _må_ læse om det ;-D

mvh

Jesper Brunholm


Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste