webForumDet fria alternativet

Radbrytning

PHP

4 svar · 407 visningar · startad av Jesper2

Medlem sedan dec. 200475 inlägg
Frågan#1

Jag behöver en funktion som gör en radbrytning om inlägget i en gästbok blir för långt så att <div>-en inte skjuts ut i sidled. Just nu har jag den här funktionen:

			$mellanslag = " ";
			if((stristr($text, $mellanslag) == False)){
				$text = wordwrap($text,23, "\n", 1);
			}

Den bryter vid 23 tecken om inlägget inte innehåller några mellanslag. Men det räcker ju med att t ex inleda inlägget med ett mellanslag och sen hålla inne en knapp för att man ska förstöra. Om man har wordwrap i alla lägen, oavsett om inlägget innehåller ett mellanslag eller inte så blir det väldigt irriterande att läsa. Det håller inte..

Finns det något sätt att fixa det här? IE läser ju inte max-width :/

Tack på förhand!

Medlem sedan dec. 200220 inlägg
#2

CSS är nog rätt spår.
max-width tolkas förvisso inte av IE, men varför inte använda width?

Medlem sedan juni 20006 031 inlägg
#3

Du kan ju ta bort alla mellanslag som är före och efter texten innan du lägger in i databasen.

// Tag bort eventuella blanksteg i början eller slutet 

foreach($_POST as $key => $val){ 

	$_POST[$key] = trim($val); 
}
Medlem sedan mars 20025 907 inlägg
#4

En funktion som jag en gång hittade här på wF

function ShortWord($text,$length) 
{
	$text = preg_replace ("/([^\s]{".$length.",})/e", "''.wordwrap('\\1', ".$length.", ' ', 1).''", $text);
	return $text;
}
echo ShortWord('foo boooooooooop',4);
//Resulterar i:
//foo booo oooo ooop
Medlem sedan dec. 200475 inlägg
#5

Peer hade ett alldeles utmärkt svar =)

Tack!

249 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)