Visa ett inlägg
Oläst 2007-01-31, 15:08 #1
chrizzs avatar
chrizz chrizz är inte uppkopplad
Medlem
 
Reg.datum: Aug 2004
Inlägg: 296
chrizz chrizz är inte uppkopplad
Medlem
chrizzs avatar
 
Reg.datum: Aug 2004
Inlägg: 296
Jag blir vansinnig på den här enkla funktionen och jag får inte till det ordentligt (det är eventuella radbrytningar (\n) i texten som orsakar problem.

Tanken är att $text är en enkel oformatterad text, och funktionen ska returnera allt med tecknet ">" framför varje rad. $chars_per_row är styrningen för hur långa raderna ska bli (man får ta hänsyn till att det är ord i texten, så man inte klipper orden rakt av).

Jag bifogar en grundstomme, men kom gärna med en ny infallsvinkel om du har bättre förslag:

Kod:
function text2rows($text, $chars_per_row)
{
  $words = explode(' ', $text);
  $i = 0;
  $row = array();

  foreach ($words AS $t)
  {
   $row[$i] .= $t.' ';
   if (strlen($row[$i]) > $chars_per_row)
     $i++; // ny rad.
  }

  foreach ($row AS $t)
   $new_text .= "> ".trim($t)."\n";

  return $new_text;
}
Koden ovan fungerar med text utan radbrytningar, men blir helt fel när texten innehåller "\n" här och var (prova själva med en provtext, ta nått längre från aftonbladet.se eller nått bara). Bäst vore även om helt tomma rader får ">" i sig, vilket inte sker med ovanstående.
chrizz är inte uppkopplad   Svara med citatSvara med citat