[PHP] printf en sscanf functies

Pagina: 1
Acties:

  • Neman
  • Registratie: September 2000
  • Laatst online: 30-08 12:47

Neman

Een uit de lucht gegrepen naam

Topicstarter
Ik wil een bepaalde input parsen naar het formaat van 3 tekens lang, evt. met voorloopnullen. Dit werkt:
code:
1
2
$a = 3;
printf("%03s", $a); // resultaat is "003"

Dan print 'ie de output dus. Nu wil ik parsen. De help geeft dan (terecht?) aan dat ik sscanf moet gebruiken en dat de format hetzelfde is als printf. Leuk, maar t werkt niet echt :(:
code:
1
2
3
$a = 3;
$blaat = sscanf($a, "%03s", &$a);
echo $blaat; //resultaat is "1" (een true van de functie?)

Wat doe ik fout? Kan ik andere functies gebruiken?

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

sscanf is daar niet voor bedoeld....
De functie die jij zoekt is sprintf dus

$blaat = sprintf("%03s", $a); // resultaat is "003"


sscanf is voor een string uit elkaar te halen. vb uit manual

$serial = sscanf("SN/2350001","SN/%d");

Programmer - an organism that turns coffee into software.


  • PrinsEdje80
  • Registratie: Oktober 2001
  • Laatst online: 01-01 15:26

PrinsEdje80

Holographic, not grated...

Op woensdag 19 december 2001 16:01 schreef Neman het volgende:
code:
1
2
3
$a = 3;
$blaat = sscanf($a, "%03s", &$a);
echo $blaat; //resultaat is "1" (een true van de functie?)
Probeer eens:
code:
1
list($blaat) = sscanf($a, "%03s");

Weet niet zeker of dit werkt, maar dit is een manier die ik gebruik om meerdere variabelen mbv een sscanf te uitlezen.
In theorie zou dit moeten werken....
Suc6

Used to be Down Under... Foto gallery


  • Neman
  • Registratie: September 2000
  • Laatst online: 30-08 12:47

Neman

Een uit de lucht gegrepen naam

Topicstarter
Bedankt LuCarD, sprintf doet de truc :). De uitwerking van PrinsEdje80 werkt niet, maar aan 1 oplossing heb ik genoeg :) en ik dank je voor je moeite.