|
| formateret print Fra : Leonard |
Dato : 02-05-09 20:42 |
|
Jeg har en liste med tlfnumre i formen 12345678, dem vil jeg gerne
printe som 12 34 56 78, men et kig på printf hjalp mig ikke meget.
Den tunge vej er:
<?php print substr($tlf,0,2)." ".substr($tlf,2,2)."
".substr($tlf,4,2)." ".substr($tlf,6,2); ?>
men det må kunne gøres snildere.
--
Leonard
| |
Bertel Lund Hansen (02-05-2009)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 02-05-09 20:52 |
|
Leonard skrev:
> Jeg har en liste med tlfnumre i formen 12345678, dem vil jeg gerne
> printe som 12 34 56 78, men et kig på printf hjalp mig ikke meget.
> Den tunge vej er:
> <?php print substr($tlf,0,2)." ".substr($tlf,2,2)."
> ".substr($tlf,4,2)." ".substr($tlf,6,2); ?>
> men det må kunne gøres snildere.
Jeg kender ikke nogen anden metode. Jeg kan lave nogle
variationer over den angivne, men ikke noget der er nemmere. Jeg
tvivler på at ottecifrede telefonnumre angivet to cifre ad gangen
er så verdensudbredt en standard at der kommer en rutine til det
i PHP.
Du kan lave din egen funktion så det ser lidt pænere ud i selve
koden:
function format_telephone_number ($number) {
$temp='';
for ($nr=0; $nr<8; $nr+=2) $temp.=substr($number,$nr,2);
return $temp;
}
<?php=format_telephone_number ($tlf)?>
<?php= er kortform for <?php echo.
PS. printf() kan ikke bruges til at splitte et element op.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Martin (02-05-2009)
| Kommentar Fra : Martin |
Dato : 02-05-09 23:40 |
|
Bertel Lund Hansen wrote:
> Leonard skrev:
>
>> Jeg har en liste med tlfnumre i formen 12345678, dem vil jeg gerne
>> printe som 12 34 56 78, men et kig på printf hjalp mig ikke meget.
>
>> Den tunge vej er:
>> <?php print substr($tlf,0,2)." ".substr($tlf,2,2)."
>> ".substr($tlf,4,2)." ".substr($tlf,6,2); ?>
>> men det må kunne gøres snildere.
>
> Jeg kender ikke nogen anden metode. Jeg kan lave nogle
> variationer over den angivne, men ikke noget der er nemmere. Jeg
> tvivler på at ottecifrede telefonnumre angivet to cifre ad gangen
> er så verdensudbredt en standard at der kommer en rutine til det
> i PHP.
$telefonnummer = 12345678;
echo implode(' ', str_split($telefonnummer, 2));
str_split tager en variabel, og laver den til et array hvor 2 tegn så er
i hver sin nøgle i arrayet.
implode sætter i dette tilfælde mellemrum mellem hvert item i arrayet
$telefonnummer = 12345678;
echo implode(', ', str_split($telefonnummer, 3));
Ville så give
123, 456, 78
> <?php= er kortform for <?php echo.
og bør så vidt muligt undgås, da ikke alle servere kører med
short_tag = on
så hellere bruge den lange form, så er man sikker på det virker overalt
| |
Leonard (03-05-2009)
| Kommentar Fra : Leonard |
Dato : 03-05-09 13:46 |
|
Martin wrote:
> echo implode(' ', str_split($telefonnummer, 2));
Åh, ja, de funktioner kender jeg jo godt, men har bare ikke sat dem
sammen på den måde.
> > <?php= er kortform for <?php echo.
>
> og bør så vidt muligt undgås, da ikke alle servere kører med
> short_tag = on
> så hellere bruge den lange form, så er man sikker på det virker
> overalt
Hvis det endeligt skal være kortform så kan det ligeså godt være <?=
men jeg er gået væk fra det, netop fordi det måske ikke virker på den
næste server og så er det ikke helt nemt at læse.
Det er det samme med: $a = ($b==$c) ? $d : $e; som jeg kun bruger når
jeg tjekker om variabler er sat ellers foretrækker jeg at skrive det
samme med en struktureret if - det er meget nemmere at læse, synes jeg.
--
Leonard
| |
Martin (04-05-2009)
| Kommentar Fra : Martin |
Dato : 04-05-09 19:05 |
|
Leonard wrote:
> Martin wrote:
>
>> echo implode(' ', str_split($telefonnummer, 2));
>
> Åh, ja, de funktioner kender jeg jo godt, men har bare ikke sat dem
> sammen på den måde.
Det er så fantastisk, når man leger lidt med funktionerne, man får nogle
sjove resultater :D
>
>>> <?php= er kortform for <?php echo.
>> og bør så vidt muligt undgås, da ikke alle servere kører med
>> short_tag = on
>> så hellere bruge den lange form, så er man sikker på det virker
>> overalt
>
> Hvis det endeligt skal være kortform så kan det ligeså godt være <?=
> men jeg er gået væk fra det, netop fordi det måske ikke virker på den
> næste server og så er det ikke helt nemt at læse.
>
> Det er det samme med: $a = ($b==$c) ? $d : $e; som jeg kun bruger når
> jeg tjekker om variabler er sat ellers foretrækker jeg at skrive det
> samme med en struktureret if - det er meget nemmere at læse, synes jeg.
>
while(...) {
echo '<option ' . ($id == $andetid ? 'selected="selected" : '') .
'></option>
}
Engang imellem kan den være rar, men savner nu at man kan også kan
benytte javascripts metode
fx.
($id == $andetid ?? 'seleted')
så man slipper for den sidste :
| |
|
|