Hvordan man benytter (s)printf

Release your script here.
State:
- Author
- What it does
- Perhaps a little guide.
- Also, if the snippet is of any use to the community, it has a chance of getting posted on the main page, so don't hesitate to submit/ask!

Hvordan man benytter (s)printf

Postby Dandy » Mon Mar 03, 2008 9:03 pm

Her er en lille guide til hvordan man benytter php funktionen sprintf eller printf

Funktionerne bruges til at formatere en streng og kan være utrolig handy hvis man skal have en masse variabler ind i sin streng hvor nogle måske skal være 2 steder.

Der er en lille forskel på printf og sprintf og det er at:
  • printf: Printer resultatet ud
  • sprintf: Returnere resultatet

int printf ( string $format [, mixed $args [, mixed $... ]] )
string sprintf ( string $format [, mixed $args [, mixed $... ]] )

$format (1. parameter) er formatet af vores resultat

Obs! For at man kan benytte et procent tegn (%) i $format skal man skrive %% istedet for %

Format er sådan set det man får som resultat
printf('Hello World!'); giver det samme som print 'Hello World!';

det smarte ved funktionerne er så at man kan bruge %x som en slags placeholder:

$variable = "World";
printf("Hello %s!",$variable); // udskriver Hello World, fordi at %s udskiftes med anden parameter (første efter $format)

Der er nogle forskellige "placeholders" man kan putte i sit format de mest simple er:

  • %s - Streng, kan indeholde værdien af en streng
  • %d - Integer, kan indeholde et heltal
  • % - Universal, kan indeholde alt

Hvis vi f.eks ønsker at lave en mysql_query kan vi bruge sprintf til at indsætte værdierne i vores sql string

Code: Select all
$felt1 = "Værdi af felt 1";
$felt2 = "Værdi af felt 2";
$felt3 = "Værdi af felt 3";
$felt4 = "Værdi af felt 4";
$felt5 = "Værdi af felt 5";
mysql_query(
    sprintf(
        "INSERT INTO myTable (felt1,felt2,felt3,felt4,felt5) VALUES ('%s','%s','%s','%s','%s')",
        $felt1,
        $felt2,
        $felt3,
        $felt4,
        $felt5
    )
);

dette vil svare til:
Code: Select all
mysql_query("INSERT INTO myTable (felt1,felt2,felt3,felt4,felt5) VALUES ('Værdi af felt 1','V
ærdi af felt 2','Værdi af felt 3','Værdi af felt 4','Værdi af felt 5')");


Der er ikke nogen begrænsning for hvad disse funktioner kan bruges til.

Skrevet af Dandy på sp00fed.dk
Dandy
 

Return to PHP Release

Who is online

Users browsing this forum: No registered users and 3 guests

cron