Avatar billede razmuz Nybegynder
10. april 2004 - 11:45 Der er 9 kommentarer og
1 løsning

Auto. deling af string i 3 dele

Hej Eksperter!

Jeg har en tekst (en profil), som fylder lad os sige 500 karaktere. Denne tekst henter jeg fra min MySql-database ned i én streng ($Profil). Jeg vil gerne have profilen til at fremstå i 3 kolonner, og det er her mit problem opstår. Som det er nu har jeg indsat 2 dele-koder (<split>). Op så deler jeg min string ved hjælp af:
  split("<split>", $Profil);
Det virker fint nok, men det kræver bare at nogen manuelt indsætter <split> i teksten.

Så er mit spørgsmål til dig:
Kan jeg ikke på en måde dele min profil i 3 nogenlunde lige store dele. Jeg tænkte på om man kunne tælle længden af profilen og så dele lige over, men det går ud over afsnitsinddelingen. Men hvis man nu kunne søge efter et nyt afsnit og så dele??? Har du nogle ideer?
Avatar billede hmortensen Nybegynder
10. april 2004 - 12:21 #1
Det her skulle kunne gøre det:

$lenght = (strlen($profil)) / 3;
$del1 = substr($profil, 0 , $lenght);
$del2 = substr($profil, $lenght, $lenght);
$del3 = substr($profil, (2 * $lenght), $lenght);

echo $del1."<br>".$del2."<br>".$del3;
Avatar billede detox Nybegynder
10. april 2004 - 12:25 #2
Hvis ikke du vil dele midt i et ord så prøv:

$arr = explode('#¤%&', wordwrap($str, ceil(strlen($str)/3), '#¤%&'));

så ligger de tre dele i $arr[0], $arr[1] og $arr[2].
Avatar billede detox Nybegynder
10. april 2004 - 12:31 #3
Hvis du vil dele efter afsnit, må du nok lave det på en lidt anden måde. Og det vil jo så betyde at der mindst skal være tre afsnit i teksten. Hvordan definerer du et nyt afsnit?
Avatar billede razmuz Nybegynder
10. april 2004 - 12:43 #4
Jeg definere bare mine afsnit med [enter] - altså ren tekst.

ET AFSNIT

ET ANDET AFSNIT
Avatar billede razmuz Nybegynder
10. april 2004 - 12:45 #5
Det virker (delvist).
For den deler jo midt i en sætning. Kan du hjælpe mig med at dele den i afsnit?
Avatar billede detox Nybegynder
10. april 2004 - 13:02 #6
Det får jeg desværre ikke tid til lige nu, men det er klart at det bliver noget mere indviklet. Ikke mindst fordi 'newline' (ENTER) bliver defineret på flere forskellige måder alt efter styresystem. Det kunne måske osse forekomme at der kun er et eller to afsnit i teksten. Men hvis det ikke er tilfældet, kan det måske løses med en form for preg_split() eller lign.
Avatar billede razmuz Nybegynder
10. april 2004 - 13:07 #7
Hvordan er det 'newline' er defineret. Er der ikke en oversigt et sted. Så kan jeg måske prøve mig frem til noget der virker. Jeg tror det er et Unix-system, den er hosted på.
Avatar billede detox Nybegynder
10. april 2004 - 13:10 #8
Det er sandsynligvis enten \n eller \r\n.
Avatar billede razmuz Nybegynder
10. april 2004 - 13:18 #9
Skal man så:

$arr = explode('\r\n', wordwrap($str, ceil(strlen($str)/3), '\r\n'));
Avatar billede razmuz Nybegynder
05. september 2005 - 17:54 #10
Vi lukker...
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