/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Java's MessageFormat alike funktion til PH~
Fra : Peter Theill


Dato : 10-08-01 21:14

Hey,

Jeg soeger en funktion ala hvad MessageFormat i Java kan. Jeg har brug for
at lave en formattering af en streng:

$str = "Er {0} virkelig {1} aar gammel?";

Jeg kan opnaa naesten (men ikke HELT) det samme med fx PHPs sprintf:

$str = sprintf(
"Er %s virkelig %d aar gammel?",
"Peter",
23
);

Jeg skal oversaette mine beskeder .. og det vil skabe problemer, hvis
oversaettelsen foreskriver at der skal flyttes rundt paa linien. Jeg kan
ikke komme med noget sprog-eksempel nu, men fx noget ala:

$str = "%d aar gammel .. er %s virkelig det?"

vil goere sprintf ubrugelig, da man skal ind og aendre i koden (NONO).

Med MessageFormat vil det jo vaere lige ud af landevejen, ved bare at skifte
om paa positionen:

$str = "{1} aar gammel .. er {0} virkelig det?";

Er der nogen der kender en loesning/funktion der kan hjaelpe mig?

Paa forhaand tak.



--
Regards,
Peter Theill -- fornavn@efternavn.com
http://www.theill.com/





 
 
Nezar Nielsen (11-08-2001)
Kommentar
Fra : Nezar Nielsen


Dato : 11-08-01 12:57

"Peter Theill" <report@spamcop.com> wrote in message
news:9l1f8q$2i11$1@news.cybercity.dk...
> Hey,
>
> Jeg soeger en funktion ala hvad MessageFormat i Java kan. Jeg har brug for
> at lave en formattering af en streng:
>
> $str = "Er {0} virkelig {1} aar gammel?";

Der er ikke indbygget noget til sådan noget(så vidt JEG ved), men det kræver
jo ikke det store at lave en hashtabel over nøgler og så erstatte en
template-værdi med noget fra tabellen..

$tabel=array('navn'=>'Nezar','alder'=>22);

$str="Jeg hedder ###navn### og er ###alder### år gammel";

while(list($k,$v)=each($tabel)){
$str=preg_replace("/###".$k."###/",$v,$str);
}

print $str;

--
Mvh. Nezar Nielsen
http://fez.dk/




Peter Theill (11-08-2001)
Kommentar
Fra : Peter Theill


Dato : 11-08-01 14:09

> Der er ikke indbygget noget til sådan noget(så vidt JEG ved), men det
kræver
> jo ikke det store at lave en hashtabel over nøgler og så erstatte en
> template-værdi med noget fra tabellen..

Sandt nok. Jeg er bare skide doven og i stedet for at tage mig sammen og
bruge 5 minutter paa at lave routinen brugte jeg 4 1/2 minut paa at skrive
en besked til demme samt alt.lang.php ... og nu 2 minutter paa at svare.

Tak for hjaelpen


BTW: Fed web site du har.



--
Regards,
Peter Theill, fornavn@efternavn.com
http://www.theill.com/



Niels Andersen (11-08-2001)
Kommentar
Fra : Niels Andersen


Dato : 11-08-01 17:35

"Peter Theill" <report@spamcop.com> wrote in message
news:9l1f8q$2i11$1@news.cybercity.dk...
> $str = sprintf(
> "Er %s virkelig %d aar gammel?",
> "Peter",
> 23
> );

> $str = "%d aar gammel .. er %s virkelig det?"

http://php.net/manual/en/function.sprintf.php, eksempel 3

$str = "%2\%d aar gammel .. er %1\%s virkelig det?"

--
Mvh.

Niels Andersen



Peter Theill (12-08-2001)
Kommentar
Fra : Peter Theill


Dato : 12-08-01 13:05

Hej Niels,

>>

http://php.net/manual/en/function.sprintf.php, eksempel 3


$str = "%2\%d aar gammel .. er %1\%s virkelig det?"

<<

PERFEKT! Dette er lige hvad jeg har brug for.



Sincerely,

Peter Theill

Software Developer

ConquerWare




Søg
Reklame
Statistik
Spørgsmål : 177522
Tips : 31968
Nyheder : 719565
Indlæg : 6408672
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste