on Dec 10th, 2008Formatera strängar i PHP

Någonting som jag ofta använder mig av i både PHP och C# är metoder för att formatera strängar. I PHP är det främst sprintf som används, och String.Format i C#.

Sprintf fungerar på följande vis:

echo sprintf(‘Hej, jag heter %s’, ‘Alexander Nyquist’);

Första argumentet till sprintf är strängen man vill formatera, och de efterföljande argumenten värdena som nycklarna i strängen skall ersättas med.

*printf-funktionerna stöder ett antal olika nycklar, varav de vanligaste är %s och %d. %s använder du när du vill skriva ut en strän, och %d när du vill skriva ut en integer.

Situationer där det är smidigt att kunna formatera strängar är vid till exempel skapandet av sql-satser, exempelvis:

echo sprintf(‘INSERT INTO users(user_id, user_name) VALUES(%d, "%s")’, 1, ‘admin’);
 

En annan användbar funktion i samma familj är vsprintf, som tar två argument, där första är strängen man vill formatera, och andra en array med värdena. Till exempel:

echo vsprintf(‘INSERT INTO users(user_id, user_name) VALUES(%d, "%s")’, array(1, ‘admin’));
 

*printf-funktionerna är även användbara för att formatera och bestämma precisionen för hel och flyttal. Skriver vi till exempel:

echo sprintf(‘Jag är %b år gammal’, 19)
 

Kommer det skrivas ut Jag är 10011 år gammal, där alltså %b är den binära representationen av 19.

Man kan som sagt även bestämma precisionen av hel och flyttal, till exempel.

echo sprintf(‘Jag är %b år gammal’, 19.05);   
 

där vi alltså skickar in ett flyttal och får ut ett avrundat heltal, jag vet, heltal kan inte vara flyttal.

Rekommenderas:
Extensions

RSS

Lämna en kommentar