Avatar billede webmaster-patrick Nybegynder
12. juni 2006 - 14:26 Der er 24 kommentarer og
1 løsning

Variabel - max. 10 bogstaver

Hej

Jeg et loginsystem med variablen $username. Dvs. hvis jeg er logget ind er den på 17 bogstaver, og hvis ”lalala” er logget ind, er den på 6 bogstaver.

Jeg kunne godt tænke mig en kode, som skriver de 10 første bogstaver på ens side. Hvis ens brugernavn er over 10 bogstaver, skal de første 10 skrives efterfuldt af tre punktumer (…).

F.eks. bliver ”webmaster-patrick” lavet om til ”webmaster-…” og ”lalala” lavet om til ”lalala”.

På forhånd tak
Avatar billede iss Novice
12. juni 2006 - 14:33 #1
if (strlen($username)>7) $username = substr($username,0, 10)."...";

Denne gør det ikke lige som du skrev, for hvorfor lave en streng på 11 tegn om på en på 13?
Avatar billede nielle Nybegynder
12. juni 2006 - 14:33 #2
$navn = "webmaster-patrick";

$maxLength = 10;
if (strlen($navn) > $maxLength)
    echo substr($navn, 0, $maxLength) . "...";
else
    echo $navn;
Avatar billede webmaster-patrick Nybegynder
12. juni 2006 - 14:43 #3
Tak for svarene. Jeg prøver lige.
Avatar billede jakobdo Ekspert
12. juni 2006 - 14:45 #4
Og ikke point værdigt, men nogle synes det er pænere end if/else:

$maxLength = 10;
$navn = (strlen($navn) > $maxLength)?substr($navn, 0, $maxLength)."...":$navn;

Nielle_mod Version 1.1
Avatar billede webmaster-patrick Nybegynder
12. juni 2006 - 14:52 #5
Jeg tror, jeg holder mig til den originale version. :)

Kom med et svar nielle.
Avatar billede iss Novice
12. juni 2006 - 14:53 #6
Eller endnu bedre:
$username = ((strlen($username)>7)?(substr($username,0, 10)."..."):($username));
Avatar billede nielle Nybegynder
12. juni 2006 - 14:53 #7
Personligt holder jeg nu meget af ?: operatoren. :^)
Avatar billede webmaster-patrick Nybegynder
12. juni 2006 - 14:55 #8
Grunden er, at jeg ikke har lært ?: operatoren, så det virker forvirrende på mig. Ellers tak for hjælpen alle sammen. :)
Avatar billede nielle Nybegynder
12. juni 2006 - 14:56 #9
Det er slet ikke nødvendigt med alle de parenteser - og de gør det ikke ligefrem lettere at læse:

$username = (strlen($username)>7) ? substr($username,0, 10)."..." : $username;

... eller nogen gange foretrækker jeg det på endda på denne form:

$username = (strlen($username)>7)
    ? substr($username,0, 10)."..."
    : $username;
Avatar billede nielle Nybegynder
12. juni 2006 - 15:01 #10
?: operatoren, eller ternary operatoren som den også hedder, er ellers en rigtig god én at kende (om ikke andet fordi at man så kan forstå andres kode hvor den bliver brugt).

$username = (strlen($username)>7)
    ? substr($username,0, 10)."..."
    : $username;

- er blot en anden måde at skrive:

if (strlen($username)>7)
    $username = substr($username,0, 10)."..."
else
    $username = $username;

Som man kan se, så giver ?:-operatoren ofte noget mere kompakt kode. :^)
Avatar billede iss Novice
12. juni 2006 - 15:02 #11
Ikke nødvendigt, men jo, det går det nemmere at læse... for mig om ikke andet.
Avatar billede nielle Nybegynder
12. juni 2006 - 15:04 #12
Avatar billede webmaster-patrick Nybegynder
12. juni 2006 - 15:05 #13
Ja, det ser i hvert fald mere overskueligt og kompakt ud.

Jeg forstår din pointe. :)
Avatar billede jakobdo Ekspert
12. juni 2006 - 15:10 #14
Nielle, hvordan kan du forære point til iss?
Hans løsning gør jo ikke hvad webmaster-patrick spørger om.

Hvis ens brugernavn er over 10 bogstaver, skal de første 10 skrives efterfuldt af tre punktumer (…).

if (strlen($username)>7) <------ 7 :o)
Avatar billede iss Novice
12. juni 2006 - 15:14 #15
jakobdo er du alene?
Avatar billede nielle Nybegynder
12. juni 2006 - 15:19 #16
Jeg har været på Eksperten længe nok til at vide at det langt fra altid er sådan at det der spørges om i virkeligheden også er det der i virkeligeheden ønskes :^)
Avatar billede iss Novice
12. juni 2006 - 15:21 #17
Bare 2½ år kortere end mig, men hvad. Hvis du er alene så find en ordbog, hvis ikke, så få vedkommende til at læse mit første indlæg højt for dig...
Avatar billede michael_stim Ekspert
12. juni 2006 - 15:28 #18
Hvis længden af variabelen "$username" overstiger SYV karakterer skal man klippe stringen ved 10. karakter hvorefter der skal skrives 3 prikker...

Det var mere DET jakob henviste til
Avatar billede nielle Nybegynder
12. juni 2006 - 15:33 #19
Skal vi nu ikke bere slappe af og gå ud og nyde en is i det dejlige sommervejr. :^)
Avatar billede iss Novice
12. juni 2006 - 15:35 #20
Skal du også have læse kursus?

"Denne gør det ikke lige som du skrev, for hvorfor lave en streng på 11 tegn om på en på 13?"

Jeg kan mod lille betaling give dig et...
Avatar billede iss Novice
12. juni 2006 - 15:36 #21
Undskyld nielle, troede 15:19:18 indlægget var fra jakobdo.
Avatar billede jakobdo Ekspert
12. juni 2006 - 15:46 #22
ISS: Du har helt ret, jeg overså din tilføjelse i første indlæg. Og ja, jeg har ingen venner, eksperten.dk er min eneste livslinie, så bær over med mig.
Avatar billede jakobdo Ekspert
12. juni 2006 - 17:04 #23
Jeg kan ikke lade vær...
Men koden her:
if (strlen($username)>7) $username = substr($username,0, 10)."...";
Burde vel være:

if (strlen($username)>10) $username = substr($username,0, 7)."...";
Avatar billede michael_stim Ekspert
12. juni 2006 - 19:58 #24
Det var lige precis det jeg hentydede til. Men hvem ved, det kan jo väre det er meningen at hvis stringen er större end 7 karakterer skal den tage 10 ;o)
Avatar billede michael_stim Ekspert
12. juni 2006 - 19:58 #25
Og ikke mere spam herfra ;o) Men det er svärt at lade väre.
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

IT-JOB