Avatar billede dennism Nybegynder
02. oktober 2007 - 12:58 Der er 4 kommentarer og
1 løsning

PHP: Find initialer?

Jeg har et system, hvor $name f.eks. kan være:
Mick Øgendahl
Anders Matthesen
Geo

Jeg vil gerne have en metode, som ved input af disse $name giver deres initialer:
MOE
AM
GEO

Er der nogen der kan hjælpe mig med dette?
Avatar billede olebole Juniormester
02. oktober 2007 - 12:59 #1
<ole>


Hvordan det? De to første holder, men GEO er jo ikke Geo's initialer. Derfor: Hvad er reglerne?  :)
/mvh
</bole>
Avatar billede dennism Nybegynder
02. oktober 2007 - 14:05 #2
Danske bogstaver skal oversaettes til AE, EO og AA.
Hvis den string der sendes er paa kun eet ord, skal nitialet vaere de forste tre bogstaver i navnet. Er navnet f.eks. tre ord, skal det kun vaere bogstavet fra det forste og det sidste ord.
Avatar billede pidgeot Nybegynder
02. oktober 2007 - 14:10 #3
function GetInitials($name) {
  $nameparts=explode(' ',$name);
  if (count($nameparts)==1) {
    return strtoupper(substr($name,0,3));
  }
  $initials=$nameparts[0][0].end($nameparts)[0];
  return str_replace(array('Æ','Ø','Å'),array('AE','OE','AA'),strtoupper($initials));
}

Det kan være nødvendigt at skifte til et dansk locale med setlocale inden du kører funktionen for at få Æ, Ø og Å konverteret korrekt til store bogstaver. Alternativt kan du bruge mb_strtoupper i stedet for strtoupper, hvis den er tilgængelig - så klarer den det selv.
Avatar billede dennism Nybegynder
02. oktober 2007 - 17:59 #4
Tak for hjælpen.

Jeg ændrede koden til:
    function getInitials($name) {
          $nameparts=explode(' ',$name);
          if (count($nameparts)==1) {
            $initials = substr($name,0,3);
          } else {
              $end = end($nameparts);
              $initials = $nameparts[0][0].$end[0];
          }         
          return str_replace(array('Æ','Ø','Å'),array('AE','OE','AA'),strtoupper($initials));
    }
Avatar billede pidgeot Nybegynder
02. oktober 2007 - 18:02 #5
Jeg smider et svar, så :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester