[php] Picture viewer

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • 2_05
  • Registratie: November 2004
  • Laatst online: 16-09 10:46
Ik wil een simpele picture viewer maken, waarbij je de delen van het adres kunt invoeren, en kunt aangeven welke nummers die moet weergeven. Omdat er ook sites zijn die series plaatjes opdelen in verschillende mappen heb ik het opgesplitst in 3 delen, zodat ik al die mappen in een keer kan openen
Afbeeldingslocatie: http://www.stack.nl/~anton/pictureviewer.jpg

Met de volgende code erbij:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php

$numberone=$startone;
$numbertwo=$starttwo;

while($numberone <=$endone){
    if($siteend)
    {
        while($numbertwo <=$endtwo)
        {
            echo '[img]"'.[/img]<br><br>';
        $numbertwo=$numbertwo+1;
        }
    $numbertwo=$starttwo;
    }
    else
        {
            echo '[img]"'.[/img]<br><br>';
        }
    $numberone=$numberone+1;
}
?>


Het probleem waar ik nu mee zit is dat veel plaatjes beginnen bij 01, dan vul je 01 tm x in, dat gaat voor het eerste plaatje goed, maar voor het 2e tm het 9e plaatje gaat ie 2.jpg, 3.jpg enz laden ipv 02.jpg 03.jpg enz. Hoe kan ik dit verhelpen, en dan liefst zo dat als je wel een keer 2 nodig heb ipv 02 dat het dan ook werkt.

Acties:
  • 0 Henk 'm!

  • besmart
  • Registratie: April 2000
  • Laatst online: 05-10-2015

besmart

fanta share the fun

ff invullen zoiets:

if ($getal < 9) {
$getal = "0".$getal;
}

BeSmart! Everything goes well | photographs by Canon EOS 5D - Canon L 24-70 USM - Canon 70-300 USM IS


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Je hebt die 01 dus als string, en aan het eind van je while-loop tel je er één bij op. Op dat moment wordt het een integer, waarbij voorloopnullen wegvallen. Wat je dus moet doen is voorloopnullen testen. Even uit de losse pols een functie geschreven. Of hij werkt: geen idee, maar als je de werking begrijpt kun je hem makkelijk debuggen.
PHP:
1
2
3
4
5
6
7
8
function IncreaseByOne($number) {
  $aantal_cijfers = strlen($number);
  $number++;
  while(strlen($number) < $aantal_cijfers) {
    $number = "0" . $number;
  }
  return $number;
}

Acties:
  • 0 Henk 'm!

  • 2_05
  • Registratie: November 2004
  • Laatst online: 16-09 10:46
Ja, ok, maar is er ook een code om hem te dwingen het getal te gebruiken zoals het is ingevoerd? Dus 01 ook als 01 en 1 als 1 en 001 als 001.

Edit: Ok, die 2e optie kan ik goed gebruiken.

[ Voor 15% gewijzigd door 2_05 op 28-04-2005 22:49 ]


Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 12:54
Je moet zoeken in de hoek van "String format", het opmaken van een string. Zoals je misschien al weet is er op de online manual van php.net veel informatie te vinden. Zo ook over dit onderwerp en jouw probleem, dan moet je zoeken in de String Functions van de manuel.

In plaats van echo kun je gebruik maken van printf, deze funtie heeft een parameter om de string te formatteren. Hoe? dat staat gedocumenteerd bij sprintf, deze functie returnd een geformateerde string daar waar printf het direct naar de browser stuurt.

Voor jouw geval wordt het dan iets als:
PHP:
1
2
3
4
5
6
7
8
<?php
$int = 2;

printf("%02d",$int);

?>

Dit geeft dan weer: 02

[ Voor 3% gewijzigd door Sybr_E-N op 28-04-2005 22:51 . Reden: kleine correctie ]


Acties:
  • 0 Henk 'm!

  • besmart
  • Registratie: April 2000
  • Laatst online: 05-10-2015

besmart

fanta share the fun

met een printf commando moet je ook wel ver mee komen dan...
kun je met ### aangeven hoe je het wilt hebben als ik me niet vergis.

damn... net te laat :P

[ Voor 10% gewijzigd door besmart op 28-04-2005 22:51 ]

BeSmart! Everything goes well | photographs by Canon EOS 5D - Canon L 24-70 USM - Canon 70-300 USM IS


Acties:
  • 0 Henk 'm!

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 19:49

thomaske

» » » » » »

Andere oplossing is functie str_pad() gebruiken

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


Acties:
  • 0 Henk 'm!

  • 2_05
  • Registratie: November 2004
  • Laatst online: 16-09 10:46
Hij werkt, thank you all!

Acties:
  • 0 Henk 'm!

  • Mithrandir
  • Registratie: Januari 2001
  • Laatst online: 21:22
Heb je ook al bedacht wat 't moet doen als je meerdere nullen hebt? :)

Verbouwing


Acties:
  • 0 Henk 'm!

  • 2_05
  • Registratie: November 2004
  • Laatst online: 16-09 10:46
Ik heb het idee van glowmouse gebruikt, dus daar houd ie rekening mee. Maar nu ben ik op een ander probleem gestuit. Normaal als je een webpagina opslaat in IE, dan maakt ie een map aan waar die de plaatjes opslaat die op die site staan. Maar als ik mijn site wil opslaan krijg ik de melding dat de pagina mogelijk niet juist wordt opgeslagen en slaat ie alleen het .htm bestand op en niet de plaatjes. Wat doe ik fout?
Pagina: 1