Avatar billede mikze Nybegynder
10. oktober 2004 - 11:26 Der er 16 kommentarer og
1 løsning

Sæt en <br> efter antal tegn

Hejsa.

Jeg har et script sådan man kan skrive noget til MySQL, ligesom en tagwall. Når man skriver skal den bare lige gøre sådan at der bliver indsat en <br> efter 20 tegn. Altså:

hej med dig, traskda
asdklj lawkdjl ak ad
woij alksn lmna,xmnc
alsideu la  lasj alk
aildjwlakm lkas alkm

Osv.. :P
Avatar billede bojo Nybegynder
10. oktober 2004 - 11:30 #1
for ($i = 1; $i <= strlen($txt); $i+=20) {
    $txt = substr( $txt, 0, $i ) . "<br>" . substr( $txt, $i+1 );
}
Avatar billede bojo Nybegynder
10. oktober 2004 - 11:32 #2
eller måske snarere

for ($i = 1; $i+20 <= strlen($txt); $i+=20) {
    $txt = substr( $txt, 0, $i ) . "<br>" . substr( $txt, $i+1 );
}

da vi jo helst ikke skal ud over tekst længden
Avatar billede mikze Nybegynder
10. oktober 2004 - 11:37 #3
$txt = $_POST["tekst"];

for ($i = 1; $i+20 <= strlen($txt); $i+=20) {
    $txt = substr( $txt, 0, $i ) . "<br>" . substr( $txt, $i+1 );
}


Skal $txt ikke være den postede tekst? Og så bliver outputtet $txt til mysql vel?
Avatar billede hmortensen Nybegynder
10. oktober 2004 - 11:52 #4
Du kunne også bruge wordwrap() i udskrivningen istedet:
http://dk2.php.net/wordwrap
Avatar billede bojo Nybegynder
10. oktober 2004 - 11:56 #5
Her vil jeg ikke svarer selv om jeg er bedt om det, da hindu_skp's svar er meget bedre. Jeg bliver klogere hver gang hindu kommer med et svar, tak :-)
Avatar billede elskermad.dk Nybegynder
10. oktober 2004 - 12:18 #6
wordwrap må klart foretrækkes til denne opgave :)
Avatar billede mikze Nybegynder
10. oktober 2004 - 12:28 #7
jamen smid svar så :D
Avatar billede hmortensen Nybegynder
10. oktober 2004 - 12:30 #8
Ok :)
Avatar billede roenving Novice
10. oktober 2004 - 13:39 #9
Ved at bruge en regexp kan det gøres endnu simplere og effektivere. Jeg kan dog ikke lige noget php, men ved, at det ikke er så meget anderledes i principperne !-)

<script type="text/javascript">
  txt = "hej med dig, traskdaasdklj lawkdjl ak adwoij alksn lmna,xmncalsideu la  lasj lkaildjwlakm lkas alkm";
  alert(txt.replace(/(.{20})/g,"$1<br>"));
</script>
Avatar billede bojo Nybegynder
10. oktober 2004 - 13:59 #10
og det er simplere end $ny =  wordwrap ( $txt, 20, "<br />"), det forstår jeg ikke??
Avatar billede hmortensen Nybegynder
10. oktober 2004 - 17:21 #11
Det er vel omtrent det samme der ligger bag wordwrap() funktionen. Den cutter heller ikke et ord over, med mindre det er alt for langt.
Avatar billede bojo Nybegynder
10. oktober 2004 - 17:24 #12
jooo, med ,1 til sidst

wordwrap ( string str [, int width [, string break [, boolean cut]]])
Avatar billede hmortensen Nybegynder
10. oktober 2004 - 17:28 #13
Hehe, nu mente jeg at den godt kan lade være med det ;)
Avatar billede bojo Nybegynder
10. oktober 2004 - 17:30 #14
nåååå, jeg skulle jo lige brillere med min nye viden :-)
Avatar billede mikze Nybegynder
22. oktober 2004 - 20:40 #15
Du kan også bare bruge:

$ny =  wordwrap($txt, 20, "<br>", true);

Så cutter den også :D
Avatar billede bojo Nybegynder
22. oktober 2004 - 21:03 #16
som skrevet 10/10-2004 17:24:24 :-)
Avatar billede hmortensen Nybegynder
22. oktober 2004 - 21:04 #17
Skulle jeg til at skrive.

boolean er true/false
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