Gå til innhold

PHP·pub - Programming With Attitude - and beer


Anbefalte innlegg

endrebjorsvik, for er farlig script du har til kildekoden din... Det er ikke akkuratt noe problem å se gjennom KILDEKODEN til ALLE filene dine:

f.eks.:

http://home.no.net/endrebjo/test.php?page=index

5849506[/snapback]

Jeg vet det, og det er laget slik med vilje også. :p

Det var egentlig et hemmelig prosjekt der jeg ville finne en måte å se gjennom alle filene på serveren raskt og med fin highlightning. Og i dette tilfellet skulle jeg bare vise kildekoden til den siden andre siden raskt og syntes det passet med akkurat denne løsningen.

Dessuten er det kun harmløse filer og prøveprosjekter som er tilgjengelige gjennom den tjenesten der (ihvertfall som jeg kan se).

 

Du har vel ikke funnet siden som lister filene og mappene også vel? Prøv det du. :p

Lenke til kommentar
Videoannonse
Annonse
Men glem ikke at dersom du noen gang publiserer noe mer et annet sted på dette webområdet så vil alle ha tilgang til dette, inkl passord ol.

5849586[/snapback]

Njææ... det blir kun inkludert filer som ender på .php, og passord og liknende som ligger i .txt- eller .dat-filer blir dermed utigjengelig.

Dessuten har jeg enda ikke greid å komme meg opp på toppnivået på serveren (filene på http://home.no.net/endrebjo), kun på første undermappe og nedover (http://home.no.net/endrebjo/prove og undermappene i prove). Noen som vet om det går an å gå bakover.

Lenke til kommentar

En ting jeg aldri har skjønt i PHP er hvorfor "alle" bruker foreach. Greit nok, du har en assosiativ array osv., men mange klarer det kunststykket å bruke det når det er snakk om en sammenhengende numerisk indeksert array. Den har jeg litt problemer med :ermm: For all del, det er jo ikke så stor forskjell den ene gangen, men det er liksom noe ulogisk ved å bruke foreach i en slik sammenheng.

Endret av Ernie
Lenke til kommentar
Er det noen ytelsesforskjell på foreach og for? (evt. andre looper)

5867739[/snapback]

Aner ikke hvordan det er i PHP4, men i PHP5 har det nå blitt til 10% noe som egentlig er lite. Derimot mener jeg at det har vært versjoner av PHP4 hvor man har sett opptil 3000% forskjell. Da har til og med en for-loop med array_keys() vært raskere.

Lenke til kommentar

Nå er vel det langt fra en generell tommelfingerregel at foreach er 10% tregere enn ved å kun bruke arrayen. Utgangspunktet burde være at disse to er ganske like, og dersom man bruker foreach eller for burde være en smakssak.

 

Foreach jobber vel og merke med en kopi av arrayen, så dersom den er stor så er muligheten til stede for at man kan finne en forskjell. Men dette er helt meningsløst å legge noen større betydning i.

Du sier vel og merke at du har sett en forskjell på 3000%, noe jeg aldri har sett lignende til... men tall i prosent er også ganske meningsløst... la oss si at det tar 0,001 sek å gå gjennom arrayen... det betyr at det ved 3000% øking kun tar 0,03 sek gjøre det samme i det ekstremtilfellet.

 

Tar vi heller utgangspunkt i det mer reelle tallet 10% så betyr det at forskjellen vil være fra 0,001 til 0,0011.

 

Så jeg vil langt i fra anbefale det ene fremfor det andre!

 

Det er ikke sånne ting man skal vurdere når man skal optimailsere scripts. Spørsmålet ved et slikt problem er hvis ikke arrayen er for stor i utgangspunket ;)

Endret av ????????
Lenke til kommentar

????:

Nå nytter det ikke å tenke en kjøring, man må tenke flere kjøringer samtidig. Uannsett, poenget er ikke at det er treigere, poenget er at det for min del virker svært ulogisk og vitner litt om at man ikke kjenner til språket og hva man gjør så godt som man kanskjer burde. Har man en sammenhengende numerisk indeksert array så bruker man en for-loop, ikke en foreach.

 

Kjente måter å optimalisere PHP5 script?

5868280[/snapback]

De jeg har sånn i hodet akkurat nå er rimelig generelle:

- Bruk @ minimalt

- Aldri bruk funksjoner som count() inni for-looper, hent heller ut verdien på forhånd inn i en variabel og bruk den i stedet

- Bruk minimalt med array() og aldri "slett" en array med den (stygg uvane noen har, unset() er raskere).

- Ikke-rekursive funksjoner kan og er ofte raskere enn rekursive funksjoner. Kan være mye å hente, men det er også mye slit.

- Minimaliser antall SQL-spørringer med mindre du veit at spesifikke spørringer går raskere hvis man deler de opp.

- Bruk gjerne break ut av looper for å unngå kompleks struktur for avslutting. Selv gleder jeg meg til "goto" i PHP6. Det blir smoooth :w00t:

- Bruk av ob-funksjoner vil i mange tilfeller gi 10-15% bedre ytelse overall.

Endret av Ernie
Lenke til kommentar
??:

Nå nytter det ikke å tenke en kjøring, man må tenke flere kjøringer samtidig. Uannsett, poenget er ikke at det er treigere, poenget er at det for min del virker svært ulogisk og vitner litt om at man ikke kjenner til språket og hva man gjør så godt som man kanskjer burde. Har man en sammenhengende numerisk indeksert array så bruker man en for-loop, ikke en foreach.

Jeg har problemer med å forstå loggikken bak dette. Kan du grunngi hvorfor det er ulogisk? Jeg bruker foreach konsekvent på arrays, og ser ikke hvorfor jeg skal slutte med det. Og jeg vil ikke akkurat si jeg «ikke kjenner til språket».

Lenke til kommentar

Jeg å innrømme at jeg heller ikke skjønner hva Ernie sikter til. For ved å påstå det så mener faktisk Ernie et de fleste som skriver PHP koder ikke kjenner til språket. Veldig veldig mange bruker foreach()

 

Og til Ernie: Hele poenget med å ta hensyn til tid er jo å vurdere flere kjøringer. Tar en kjøring 0,001 sek så rekker serveren å håndtere 1000 hits pr. sek, ved 0,0011 så rekker den "kun" 909 hits pr. sek. Poenget er at når du har en så stor side så er ikke problemet sånne "fille" ting, men faktisk driften av flere servere som kjører i ring. Og jeg må også pressisere at det var du som presiserte hastighetsforskjellen.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...