webForumDet fria alternativet

Kapa av sträng

PHPur PHP

7 svar · 352 visningar · startad av Tim

Medlem sedan jan. 2002115 inlägg
Frågan#1

Tja,

Jag har gjort en gästbok i PHP och MYSQL. Den ligger i en tabell som är 365px bred.

Problemet jag har är att om någon skulle få för sig att mata in ett meddelande som inte utgörs av några blankrader, exempelvis:

ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss

..och detta meddelande utan blankrader går utanför den angivna storleken på tabellen, så utvidgar sig tabellen automatiskt. Därmed är layouten förstörd.

Jag undrar hur man ser till så att radbrytningar måste ske efter ett visst antal tecken?

Jag har försökt med wordwrap() men den verkar bara byta rad om ett ord skulle överstiga bredd-angivelsen och inte ett tecken. För strängen ovan är ju ett enda långt ord så det blir ingen skillnad.

Någon som har några idéer om detta?

Medlem sedan nov. 200013 890 inlägg
Medlem sedan jan. 2002115 inlägg
#3

Nej inte riktigt. Främst på grund av att något svar på frågan inte fanns, och att länken som förmodligen innehöll svaret inte funkar längre.

Hur som helst, du har ju gästbok i tabell. Hur har du gjort för att stoppa detta?

Medlem sedan nov. 200013 890 inlägg
#4

Eftersom wF håller på att möblera om så hittar du scriptet här numera:
http://webforum.aleborg.com/forum/showthread.php?s=&threadid=37528

/r Anledningen till att jag inte har använt detta i min gästbok (vilket du var tvungen att testa) är att det endast uppkommer om någon medvetet försöker att sabba.

Vill man abolut förstöra för andra så finns det tusen sätt till.

Medlem sedan jan. 2002115 inlägg
#5

Koden av honom förutsätter att det är dom 25 första tecknen jag vill åt.

Problemet är att jag vill åt de 25 första tecknen på varje rad.

Här är ett exempel från en PHP - bok:

$Namn = "Spider";

for($i=0; $i<strlen($Namn); $i++) {

$temp = substr($Namn,$i,1);

echo $temp."<br>";

}

Ovanstående ger följande resultat:

S
p
i
d
e
r

Om vi säger att jag vill bestämma att radbrytningarna ska ske efter 60 tecken. Hur gör jag då?

Medlem sedan jan. 20001 006 inlägg
#6

Jag undrar hur man ser till så att radbrytningar måste ske efter ett visst antal tecken?

Jag har försökt med wordwrap() men den verkar bara byta rad om ett ord skulle överstiga bredd-angivelsen och inte ett tecken.

Vad är det för fel på wordwrap?

<?
$text = "ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss";
$newtext = wordwrap( $text, 60, "<br>\n", 1);

echo "$newtext";
?>

/j

Medlem sedan jan. 2002115 inlägg
#7

Tack som fan...

Jag får väl skylla på boken som jag har(Pagina's). Den tar inte upp dom två sista parametrarna som du använde.

Medlem sedan jan. 2002115 inlägg
#8

För den som bryr sig så kan man i MSIE göra så här för att förhindra att tabellerna utvidgas:

style="table-layout:fixed"

Sjävlklart går det inte i netscape

135 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)