/ 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
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 :

Søg
Reklame
Statistik
Spørgsmål : 177458
Tips : 31962
Nyheder : 719565
Indlæg : 6408169
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste