/ 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
format på tlf-nr
Fra : Leonard


Dato : 02-04-06 20:18

Jeg mangler en sikker metode til at formattere tlf-nr
Jeg har en variabel, der indeholder tlf-nr, men det kan stå med og
uden mellemrum og der kan være flere numre efter hinanden, fx:

66 14 14 48
66141448
+4566141448
66141448-65951448

Jeg vil gerne præsentere tlf-nr, så tallene står i grupper af 2:

66 14 14 48
66 14 14 48
+45 66 14 14 48
66 14 14 48 - 65 95 14 48

Det er jo nemt nok at begynde med en

$tlf = str_replace(" ","",$tlf);

men næste trin synes jeg ikke er så ligetil, men jeg tror et regulært
udtryk er vejen frem. Nogen der har et forslag?

--
Leonard
http:/leonard.dk/hjemmeside/

 
 
Jacob Atzen (02-04-2006)
Kommentar
Fra : Jacob Atzen


Dato : 02-04-06 22:04

On 2006-04-02, Leonard <usenet@leonard.dk> wrote:
> Jeg mangler en sikker metode til at formattere tlf-nr
> Jeg har en variabel, der indeholder tlf-nr, men det kan stå med og
> uden mellemrum og der kan være flere numre efter hinanden, fx:
[snip]
> men næste trin synes jeg ikke er så ligetil, men jeg tror et regulært
> udtryk er vejen frem. Nogen der har et forslag?

Forslag:

function FormatNumber($number) {
$numbers = array();
foreach(split("-", $number) as $n) {
preg_match_all('|\+?\d{2}|', $n, $matches);
$numbers[] = join(" ",$matches[0]);
}
print(join(" - ", $numbers)."\n");
}

Det er det pæneste jeg lige kan komme på.

--
Med venlig hilsen
- Jacob Atzen

Peter Brodersen (02-04-2006)
Kommentar
Fra : Peter Brodersen


Dato : 02-04-06 22:35

On Sun, 02 Apr 2006 21:17:42 +0200, Leonard <usenet@leonard.dk> wrote:

>men næste trin synes jeg ikke er så ligetil, men jeg tror et regulært
>udtryk er vejen frem. Nogen der har et forslag?

chunk_split() er din ven:
http://php.net/manual/en/function.chunk-split.php

<?php
print chunk_split("123213231232",2," ");
?>

Output:
12 32 13 23 12 32

--
- Peter Brodersen
Find dig selv: http://map.ter.dk/

Johan Holst Nielsen (03-04-2006)
Kommentar
Fra : Johan Holst Nielsen


Dato : 03-04-06 14:47

Peter Brodersen wrote:
> On Sun, 02 Apr 2006 21:17:42 +0200, Leonard <usenet@leonard.dk> wrote:
>
>
>>men næste trin synes jeg ikke er så ligetil, men jeg tror et regulært
>>udtryk er vejen frem. Nogen der har et forslag?
>
>
> chunk_split() er din ven:
> http://php.net/manual/en/function.chunk-split.php
>
> <?php
> print chunk_split("123213231232",2," ");
> ?>
>
> Output:
> 12 32 13 23 12 32

Bliver blot ikke så pænt hvis der står

<?php
echo chunk_split("+4527123060"," ");
//output +4 52 71 23 06 0
?>

mvh
Johan

Peter Brodersen (03-04-2006)
Kommentar
Fra : Peter Brodersen


Dato : 03-04-06 17:43

On Mon, 03 Apr 2006 15:47:01 +0200, Johan Holst Nielsen
<spam@phpgeek.dk> wrote:

>Bliver blot ikke så pænt hvis der står

Helt korrekt.

Jeg missede den detalje, men læste det blot som en problemstilling med
at opdele en string med mellemrum med jævne intervaller.

--
- Peter Brodersen
Find dig selv: http://map.ter.dk/

soren.malling@gmail.~ (03-04-2006)
Kommentar
Fra : soren.malling@gmail.~


Dato : 03-04-06 16:37


> Bliver blot ikke så pænt hvis der står
>
> <?php
> echo chunk_split("+4527123060"," ");
> //output +4 52 71 23 06 0
> ?>

Så kan du jo vælge og lave landekoden som sit eget felt og sige

<?php
$number = chunk_split("12345678",'2' ' ');
$number .= $landekode.$number;
echo $number;
?>

Skulle jeg da mene, ikke gennemtestet.


Johan Holst Nielsen (03-04-2006)
Kommentar
Fra : Johan Holst Nielsen


Dato : 03-04-06 17:30

soren.malling@gmail.com wrote:
>>Bliver blot ikke så pænt hvis der står
>>
>><?php
>>echo chunk_split("+4527123060"," ");
>>//output +4 52 71 23 06 0
>>?>
>
>
> Så kan du jo vælge og lave landekoden som sit eget felt og sige
>
> <?php
> $number = chunk_split("12345678",'2' ' ');
> $number .= $landekode.$number;
> echo $number;
> ?>
>
> Skulle jeg da mene, ikke gennemtestet.

Helt enigt - det vil være optimalt... men nu forstår jeg på Leonard som
om han får noget input fra et sted han ikke selv kan styre (og ud fra de
eksempler han har er der nogle med landekode - nogle uden osv...). Det
er mest der hvor problemet er :)

Mvh
Johan

Erik Ginnerskov (04-04-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 04-04-06 02:16

Leonard wrote:
> Jeg mangler en sikker metode til at formattere tlf-nr
> Jeg har en variabel, der indeholder tlf-nr, men det kan stå med og
> uden mellemrum og der kan være flere numre efter hinanden, fx:
>
> 66 14 14 48
> 66141448
> +4566141448
> 66141448-65951448

Og hvordan så, hvis nogen indtaster et nummer sådan:

66 141 448

Det er der nogen, som (af uransaglige årsager) finder smart.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk/



Leonard (04-04-2006)
Kommentar
Fra : Leonard


Dato : 04-04-06 07:38

"Erik Ginnerskov" <erik@donotspammmeplease.invalid> wrote:

>Og hvordan så, hvis nogen indtaster et nummer sådan:
>
>66 141 448

Så fjerner jeg mellemrummene og skriver det igen med mellemrum for
hver anden ## ## ## ##

Det gælder også hvis det skrives 6614 1448 eller 661 41 448 eller 6 6
1 4 1 4 4 8 eller ...

--
Leonard
http:/leonard.dk/hjemmeside/

Henrik Stidsen (04-04-2006)
Kommentar
Fra : Henrik Stidsen


Dato : 04-04-06 17:53

It happens that Erik Ginnerskov formulated :
> 66 141 448

> Det er der nogen, som (af uransaglige årsager) finder smart.

Nu er det nummer du bruger der heller ikke det bedste til det - men der
er adskillige numre der er smarte at skrive sådan, f.eks.:
76 117 117
70 133 233

Derudover syns jeg det er nemmest at sige telefonnumre i 2*4 - xxxx
xxxx.

--
Henrik Stidsen - http://henrikstidsen.dk/
"Health nuts are going to feel stupid someday, lying in hospitals dying
of nothing." - Redd Foxx



Dennis Munding (04-04-2006)
Kommentar
Fra : Dennis Munding


Dato : 04-04-06 21:57

Hej Henrik!
"Henrik Stidsen" <nntpspam@hs235.dk> skrev i en meddelelse
news:mn.246c7d64dd6a7dec.34878@news.hs235.dk...
> Derudover syns jeg det er nemmest at sige telefonnumre i 2*4 - xxxx xxxx.

Kan godt se, at det er nemmere at sige syvtusindtrehundredeniogtredive frem
for treoghalvfjerds niogtredive....??

Synes bedre om at sige det 4*2...
Bare min mening...


Med venlig hilsen
--
Dennis Munding
Web-master
http://www.skovaa-munding.dk/, http://www.mundings-memorial.dk/
http://www.cantica.dk/, http://www.eds-denmark.dk/



Henrik Stidsen (05-04-2006)
Kommentar
Fra : Henrik Stidsen


Dato : 05-04-06 19:22

Dennis Munding used his keyboard to write :
> Synes bedre om at sige det 4*2...
> Bare min mening...

Skal vist lige uddybe det lidt for det lyder forkert :)

Anyway, jeg siger telefonnumre som to blokke af 2*2 tal - hvilket på
skrift er 2*4 tal :)

Gad vide om det kan skrives mere forvirrende ? :)

--
Henrik Stidsen - http://henrikstidsen.dk/
"I told the doctor I broke my leg in two places. He told me to quit
going to those places." - Henny Youngman



Leonard (05-04-2006)
Kommentar
Fra : Leonard


Dato : 05-04-06 21:24

Henrik Stidsen <nntpspam@hs235.dk> wrote:

>Anyway, jeg siger telefonnumre som to blokke af 2*2 tal - hvilket på
>skrift er 2*4 tal :)

Når man skriver tlfnumre på en hjemmeside bør man tage hensyn til
hvordan en maskine læser det op og maskinen vil læse: 7532 6614 som
syvtusindefemhundredetoogtredive sekstusindesekshundredefjorten,
hvilket ikke er nemt at høre og derefter huske og taste. Derfor vil
jeg gerne vise tlfnumre som 75 32 66 14

--
Leonard
http:/leonard.dk/hjemmeside/

Henrik Stidsen (05-04-2006)
Kommentar
Fra : Henrik Stidsen


Dato : 05-04-06 22:01

Leonard has brought this to us :
> Når man skriver tlfnumre på en hjemmeside bør man tage hensyn til
> hvordan en maskine læser det op og maskinen vil læse: 7532 6614 som
> syvtusindefemhundredetoogtredive sekstusindesekshundredefjorten,
> hvilket ikke er nemt at høre og derefter huske og taste. Derfor vil
> jeg gerne vise tlfnumre som 75 32 66 14

Det kan der så være noget om - det er sådan set også ligemeget om det
skrives som xx xx xx xx eller xxxx xxxx, jeg vil sige det på samme måde
i langt de fleste tilfælde. Der er så virksomheder der bruger et xx xxx
xxx nummer som en del af deres reklamer og/eller deres image udadtil,
som regel er nummeret også meget nemmere at sige med den opdeling end
med en xx xx xx xx opdeling. F.eks. førnævnte 76 117 117 der absolut
ikke giver samme dynamik hvis man skriver og siger det som 76 11 71 17
- eller The Voice med deres 70 20 104 9 - en sær opdeling, men den
passer med deres frekvens.

--
Henrik Stidsen - http://henrikstidsen.dk/
This is not an automated signature. I type this in to the bottom of
every message.



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

Månedens bedste
Årets bedste
Sidste års bedste