Hello,
ich habe da mir mal eine Funktion abgekrampft, um Fließtext in Spalten aufzuteilen. Da wurde dann aber nur nach dem Wortende geschaut. Bei Deinem Fall sollte man wohl wenigstens bis zum Satzende kommen. Also braucht Du einen Punkt, Ausrufezeichen, Fragezeichen.
Oder Du schaust eben nur nach </p> und <br /> und was noch so in Frage kommt. Also Zeichen zählen ohne Tags. <br /> und </p> zählen wegen Extrazeile und dann Cut.
Grüße
PS: Funktions-Krampf. Vielleicht kannst Du was damit anfangen
function split_text($spaltenzahl,$text)
{
$spalten=array();
if (intval($spaltenzahl < 1))
{
$spaltenzahl=1;
}
$spaltennr=1;
$text = strip_tags($text,"<br>");
$textlen = strlen($text);
$textpos = 0;
$in_tag = false;
while ($textpos < $textlen)
{
while ($textpos < (intval($textlen/$spaltenzahl)*$spaltennr))
{
if (!$in_tag)
{
if ($text[$textpos]=="<")
{
$in_tag=true;
}
$spalten[$spaltennr].=$text[$textpos];
$textpos++;
while (!$in_tag and ($text[$textpos]) and (strpos(" -<",$text[$textpos])===false))
{
$spalten[$spaltennr].=$text[$textpos];
$textpos++;
}
}
if ($in_tag)
{
do
{
$spalten[$spaltennr].=$text[$textpos];
if ($text[$textpos]==">")
{
$in_tag = false;
}
$textpos++;
}
while ($in_tag and ($textpos < $textlen));
}
}
$spaltennr++;
}
# for ($spaltennr=0; $spaltennr < $spaltenzahl, $spaltennr++)
# {
# $spalten[$spaltennr] = htmlentities($spalten[$spaltennr]);
# }
return $spalten;
}