Toon posts:

[php] waar staat %s voor ?

Pagina: 1
Acties:
  • 302 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Kan iemand me uitleggen waar %s voor staat in PHP?
Ik ben namelijk Professional PHP Programming aan het doorwerken, en daar word %s gebruikt in een script voor een adres boek. Ik heb bijvoorbeeld deze functie

// Maakt het HTML formulier voor add/modify/search
function GenerateHTMLForm($formValues, $actionScript, $submitLabel) {

printf("<FORM METHOD=post ACTION=\"%s\"><PRE>\n", $actionScript);
printf("Name: <INPUT TYPE=text SIZE=35 NAME=cn VALUE=\"%s\">
\n", ($formValues) ? $formValues["cn"] : "");
printf("E-mail: <INPUT TYPE=text SIZE=35 NAME=mail VALUE=\"%s\">
\n", ($formValues) ? $formValues["mail"] : "");
printf("City: <INPUT TYPE=text SIZE=35 NAME=locality VALUE=\"%s\">
\n", ($formValues) ? $formValues["locality"] : "");
printf("Description:<INPUT TYPE=text SIZE=35 NAME=description VALUE=\"%s\">
\n", ($formValues) ? $formValues["description"] : "");
printf("Telephone: <INPUT TYPE=text SIZE=35 NAME=telephonenumber VALUE=\"%s\">
\n", ($formValues) ? $formValues["telephonenumber"] : "");
printf("<INPUT TYPE=submit VALUE=\"%s\">", $submitLabel );
printf("</PRE></FORM>" );

}

die ik aanroep met

GenerateHTMLForm( 0, "search.php", "SEARCH");

Ik snap dit heel script wel, behalve dan %s. In het boek, en ook op php.net kon ik nix vinden.

  • Counter-Strike
  • Registratie: Maart 2000
  • Niet online

Counter-Strike

Maar ik speel het niet!

Denk hier maar es overna ;)

$tekst = "blah";
$tekst2 = "blahtje";

printf("%s %s",$tekst, $tekst2);

Je kunt daarmee dus de variable buiten de print zetten, kan handig zijn bij zelfgemaakte functies bijvoorbeeld.

Dit is het einde van deze mededeling. De mogelijkheid tot reageren is aanwezig!


Verwijderd

%s is voor string buiten de sprintf
%d is voor een getal buiten de sprintf

  • Martin Sturm
  • Registratie: December 1999
  • Laatst online: 30-03 15:00
%s is uit C afkomstig. (iig het wordt daar ook gebruikt) in PHP is het te gebruiken bij printf, fprintf(is die er onder php??) en sprintf. Ze werken alledrie hetzelfde, maar het doel van de uitvoer verschilt:
prinff -> uitvoer naar scherm
fprintf -> uitvoer naar file
sprintf -> uitvoer naar variabele

als voorbeeld nemen we ff sprintf:
code:
1
2
3
$voornaam='flip';
$achternaam='flipsen';
$tekst=sprintf("hallo ik ben %s %s", $voornaam, $achternaam);

Je krijgt dan in $tekst
'hallo ik ben flip flipse'

Het komt er dus op neer dat de tekens voorafgegaand met % worden vervangen door een variabele, die dus na de string word genoemd.

De %s is voor string variabelen
%d voor integers
%f voor floats

In het geval van %f kan je ook nog de aantal tekens voor en na de komma specificeren.
bv
printf("%2.2f",$guldens);
Als $guldens een float is, dan print hij dus nu twee cijfers voor de punt, en 2 na de punt. Ongeacht het aantal decimalen voor of na de punt in $guldens.

Dit is o.a. handig bij het maken van SQL query's oid.

(oeps, is dit nog wel allemaal duidelijk.... :) )

Verwijderd

Topicstarter
bedankt,
ik snap het nu wel, maar toch zie ik er het nut niet van in.
bijvoorbeeld :

$vnaam = "Henk";
$anaam = "Flipsen";

dan kan ik dat dus zo in een printf zetten:

printf ("hallo, ik ben %s %s", $vnaam, $anaam);

maar dat kan toch ook gewoon zo?:

printf ("hallo, ik ben $vnaam $anaam");

Verwijderd

Ja dat kan, maar dit werkt bijvoorbeeld niet:
print "Hallo ik ben strtoupper($naam)";

Bovendien kun je met printf gelijk een 'format' meegeven: aantal decimalen, opvulspaties. Zie http://www.apostate.com/programming/printf.html

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

echo "Hallo ik ben " . strtoupper($naam); ;)

maar, idd, de formatting is wel handig.

Today's subliminal thought is:


  • Martin Sturm
  • Registratie: December 1999
  • Laatst online: 30-03 15:00
en je kunt ook niet
$volledigenaam="$voornaam $achternaam";

Zoals ik al zei, is het voor bv SQL query's vrij handig (sprintf dus) vind ik.

Verwijderd

en je kunt ook niet
$volledigenaam="$voornaam $achternaam";
Waarom niet?

Verwijderd

Door die aanhalingstekens eromheen misschien? Tis geen tekst...

  • tom kuipers
  • Registratie: Juli 1999
  • Laatst online: 23-02-2025
$volledigenaam=$voornaam." ".$achternaam;

Works fine with me :)

eneu "'t is geen tekst". Dat kan dus in PHP...

$naam = "tom";
echo "hallo $naam";

word vrolijk "hallo tom";
Pagina: 1