Tom: mehrspaltige darstellung von langen texten

Beitrag lesen

Hello,

das schwere an diesen sachen sind die unterschiedlichen schriftarten die browserstandardmäßig benutzen und eingaben ala MMMMMMMMMMM ...

und unvorhergesehene Umbrüche

Du must also erst den Rawtext teilen, dann die htmlZeichen ersetzen und dann hoffen, dass der Browser bei der Ausgabe mitspielt.

Im Prinzip kann man durch die Hintertür auch die entstandene Spaltenhöhe messen. Aber das klappt nur mit JavaScript und manche Browser stäuben sich auch.

//------------------------------------------------------------
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;
}
//------------------------------------------------------------

Hier handelt es sich um einen Text, ders schon Tags enthält. Leichter ist das ganz bestimmt mit dem Rawtext.

Liebe Grüße aus http://www.braunschweig.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen