Avatar billede ofirpeter Nybegynder
18. august 2006 - 10:34 Der er 14 kommentarer og
1 løsning

Del ord op i 2

Jeg har brug for at kunne dele et ord op i to, hvis ordet er over 20 tegn langt. Det vil sige at jeg først skal finde alle de ord i en sætning som er over 20 tegn lange, og derefter indsætte et mellemrum midt i disse ord.

$var = "Dette er et megetmegetmegetlangtord"

bliver så til:

$var = "Dette er et megetmegetme getlangtord"

Med venlig hilsen
Peter
Avatar billede nielle Nybegynder
18. august 2006 - 10:38 #1
Hvis det er fordi at det ellers ikke kan passe ind i et textarea, så skulle du måske overveje at kigge på wordwrap()-funktionen:

http://dk.php.net/wordwrap
Avatar billede ofirpeter Nybegynder
18. august 2006 - 10:43 #2
Det har ikke noget med det at gøre, jeg forsøger bare at undgå at brugerne smadre min tabeller ved at ligge "megetlangeordindsomsågårudoversiden"
Avatar billede mcgoat Nybegynder
18. august 2006 - 10:45 #3
så ville wordwrap også være en god ide :)

<?php
$tekst = "Detteeretmegetlangtordsomerlaaaangt";
$nytekst = wordwrap($tekst, 10, "<br />\n");

echo $nytekst;
?>

vile give:

Detteeretm
egetlangto
rdsomerlaa
aangt
Avatar billede nielle Nybegynder
18. august 2006 - 10:47 #4
Det sædvanlige råd herinde er at smide poster hvor folk forsøger den slags sabotage væk med det samme.
Avatar billede morhan Novice
18. august 2006 - 10:47 #5
$var = preg_replace('/(\S{20})(\S)/', '$1 $2', $var);

indsætter et mellemrum efter hvert 20ende bogstav
Avatar billede nielle Nybegynder
18. august 2006 - 10:48 #6
$tekst = wordwrap($tekst, 20, " ");
Avatar billede ofirpeter Nybegynder
18. august 2006 - 11:00 #7
"Det sædvanlige råd herinde er at smide poster hvor folk forsøger den slags sabotage væk med det samme." <- Forstår ikke helt dit indlæg nielle?

Okay hvordan tjekker jeg så en sætning for lange ord?
$var = "Dette er et megetmegetmegetlangtord"
Skal give: "Indholder langt ord"

$var = "Dette er et meget meg etm egetl ang tord"
Skal give: "Indholder IKKE langt ord"
Avatar billede morhan Novice
18. august 2006 - 11:05 #8
det kan du med en lille ændring af regexudtrykket

if( preg_match('/\S{21,}/', $var) ){
    echo "langt ord";
}
Avatar billede nielle Nybegynder
18. august 2006 - 11:12 #9
Morhan har givet løsningen.

Men du skriver samtidigt at du ikke helt forstår mit indlæg? Grundfilosofien er nu simpel nok: Hvis folk forsøger at sabotere dit site ved at poste indlæg med "megetmegetmegetlangtord" så er der ingen som helst grund til at du skal være flink og poste deres indlæg alligevel. Smid dem væk i stedet.
Avatar billede ofirpeter Nybegynder
18. august 2006 - 12:05 #10
Nåh, på den måde :) Det fandt jeg også ud af og derfor en morhans løsning god. Da jeg bare ikke poster deres indlæg hvis de forsøger at skrive et langt ord.
Avatar billede ofirpeter Nybegynder
18. august 2006 - 12:06 #11
Morhan du må gerne svare
Avatar billede ofirpeter Nybegynder
21. august 2006 - 11:16 #12
nielle smid venligst et svar. Erfaringen siger mig at morhan ikke svarer. Hvis dette ikke er tilfældet og du ønsker point, smid da venligst et svar morhan.
Avatar billede nielle Nybegynder
21. august 2006 - 11:18 #13
Oki :^)
Avatar billede ofirpeter Nybegynder
21. august 2006 - 15:30 #14
Tak
Avatar billede nielle Nybegynder
21. august 2006 - 18:22 #15
Takker for point :^)
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