Avatar billede mjl Nybegynder
19. oktober 2003 - 16:56 Der er 17 kommentarer og
2 løsninger

Vælge lidt af et navn.

Hej der...

Hvis jeg har følgende:

$navn = "Viggo Bo Badesandal";

Hvordan kan jeg så få...

$navn = "Viggo's";

Altså; skal et navn kortes ned til første mellemrum (skal kun bruge fornavnet) og så skal 's tilføjes!?

Kan man det? Hvordan?
Avatar billede jakobclausen Nybegynder
19. oktober 2003 - 17:00 #1
$fornavn = strtok($navn, " ");
Avatar billede Slettet bruger
19. oktober 2003 - 17:01 #2
Hvad hvis man hedder Hans ?
Avatar billede jakobclausen Nybegynder
19. oktober 2003 - 17:02 #3
$navn = "Viggo Bo Badesandal";

$fornavn = strtok($navn, " ");
$navn = $fornavn. "'s";
Avatar billede riversen Nybegynder
19. oktober 2003 - 17:02 #4
$navn = substr( $navn, 0, strpos( $navn, " " ) ) . "'s";
Avatar billede detox Nybegynder
19. oktober 2003 - 17:04 #5
el barto -> Good point!
Avatar billede mjl Nybegynder
19. oktober 2003 - 17:09 #6
riversen> Det kører jo i olie...

jakobclauesen> Forstår ikke helt...
Avatar billede mjl Nybegynder
19. oktober 2003 - 17:10 #7
Og hvad er der med "Hans"?
Avatar billede jakobclausen Nybegynder
19. oktober 2003 - 17:11 #8
Du har et navn der ligger i en variabel der hedder $navn:
$navn = "Viggo Bo Badesandal";

Ved at bruge: $fornavn = strtok($navn, " ");
finder du det stykke tekst der er indtil der kommer et mellemrum (" "), i dette tilfælde, Viggo. Og det bliver lagt over i en variabel der hedder $fornavn.

Nu ændre jeg så $navn, så der kommer til at stå $fornavn's - altså viggo's
Avatar billede riversen Nybegynder
19. oktober 2003 - 17:12 #9
det skulle virker uanset hvilket navn, men du kan jo selv teste og så spørge, hvis der er problemer
Avatar billede athlon-pascal Juniormester
19. oktober 2003 - 17:13 #10
"§ 21. Genitiv 
(1) HOVEDREGEL
Genitiv ender som hovedregel på -s:

døgnets middeltemperatur, biernes liv, min brors fødselsdag, Amerikas opdagelse, Provences befolkning, Hartvig Frischs retskrivningsreform, Brüel & Kjærs personale, Alices restaurant, Bachs dobbeltkoncert.

(2) ORD PÅ -S, -Z ELLER -X
Ord der ender på -s, -z eller -x, har genitiv på ' (apostrof, jf. § 6 ):


dette hus' indretning
Jens' arbejde
Randers' erhvervsliv
cornflakes' sukkerindhold
den moderne jazz' udvikling
Marx' skrifter
Jacques' lillesøster
Calais' beliggenhed
en bordeaux' smag."
- Fra Retskrivningsordbogen 2001
Avatar billede jakobclausen Nybegynder
19. oktober 2003 - 17:14 #11
Du kan også trække det lidt sammen, og så kun skrive:

$navn = "Viggo Bo Badesandal";
$navn = strtok($navn, " ")."'s";

Nu indeholder $navn, viggo's
Avatar billede athlon-pascal Juniormester
19. oktober 2003 - 17:16 #12
Jeg kan ikke PHP, men noget i retning af dette:

$navn = substr( $navn, 0, strpos( $navn, " " ) );
  hvis sidste tegn i navn er s, z eller x, så
    $navn = $navn . "'";
  ellers
    $navn = $navn . "s;
Avatar billede detox Nybegynder
19. oktober 2003 - 17:21 #13
athlon-pascal -> Som fx:

$navn = "Hans Bo Badesandal";

$fornavn = strtok($navn, " ");
$s = substr($fornavn,-1);
$fornavn = ($s == "s" || $s == "z" || $s == "z") ? $fornavn .= "'" : $fornavn .= "s";
echo $fornavn;
Avatar billede athlon-pascal Juniormester
19. oktober 2003 - 17:23 #14
detox -> Ja, noget i den retning, tror jeg :-)
Avatar billede detox Nybegynder
19. oktober 2003 - 17:24 #15
$fornavn = ($s == "s" || $s == "z" || $s == "z") ? $fornavn .= "'" : $fornavn .= "s";
Skulle være:
$fornavn = ($s == "s" || $s == "x" || $s == "z") ? $fornavn .= "'" : $fornavn .= "s";
Avatar billede athlon-pascal Juniormester
19. oktober 2003 - 17:25 #16
Der er dog ikke nogen grund til at teste 2 gange for "z", og udelade "x" ;-)

$navn = "Hans Bo Badesandal";

$fornavn = strtok($navn, " ");
$s = substr($fornavn,-1);
$fornavn = ($s == "s" || $s == "z" || $s == "x") ? $fornavn .= "'" : $fornavn .= "s";
echo $fornavn;

Jeg ved ikke hvordan det fungerer med PHP og store bogstaver, men måske:

$navn = "Hans Bo Badesandal";

$fornavn = strtok($navn, " ");
$s = substr($fornavn,-1);
$fornavn = ($s == "s" || $s == "z" || $s == "x" || $s == "S" || $s == "Z" || $s == "X") ? $fornavn .= "'" : $fornavn .= "s";
echo $fornavn;
Avatar billede riversen Nybegynder
19. oktober 2003 - 17:28 #17
athlon: du mener måske man kan stave Hans sådan her: HanS ?
Avatar billede mjl Nybegynder
19. oktober 2003 - 18:01 #18
Hold da ferie - det blev dybt - jeg har brugt "riversen's" løsning - men din er jo også ok, "jacbclauesen" - så i må dele points...

Ellers 1000 tak for alle indlæg...
Avatar billede athlon-pascal Juniormester
19. oktober 2003 - 19:54 #19
riversen -> Der kan være brugere, der kan finde på at skrive f.eks. "HANS  BO BADESANDAL", det gælder så om at forebygge den slags fejl 40...
Man kan desværre ikke forvente, at alle brugere har en retskrivningsordbog i hånden/hovedet, og mange brugere er ligeglade med den slags "detaljer"...

(HANS'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