wordwrap.inc.t
来自「eGroupWare is a multi-user, web-based gr」· T 代码 · 共 124 行
T
124 行
<?php/**************************************************************************** copyright : (C) 2001-2003 Advanced Internet Designs Inc.* email : forum@prohost.org* $Id: wordwrap.inc.t,v 1.1.1.1 2003/10/17 21:11:25 ralfbecker Exp $** This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or * (at your option) any later version.***************************************************************************/function fud_wrap_tok($data){ $wa = array(); $len = strlen($data); $i=$j=$p=0; $str = ''; while ($i < $len) { switch ($data{$i}) { case ' ': case "\n": case "\t": if ($j) { $wa[] = array('word'=>$str, 'len'=>($j+1)); $j=0; $str =''; } $wa[] = array('word'=>$data[$i]); break; case '<': if (($p = strpos($data, '>', $i)) !== false) { if ($j) { $wa[] = array('word'=>$str, 'len'=>($j+1)); $j=0; $str =''; } $s = substr($data, $i, ($p - $i) + 1); if ($s == '<pre>') { $s = substr($data, $i, ($p = (strpos($data, '</pre>', $p) + 6)) - $i); --$p; } else if ($s == '<span name="php">') { $s = substr($data, $i, ($p = (strpos($data, '</span>', $p) + 7)) - $i); --$p; } $wa[] = array('word' => $s); $i = $p; $j = 0; } else { $str .= $data[$i]; $j++; } break; case '&': if (($e = strpos($data, ';', $i))) { $st = substr($data, $i, ($e - $i + 1)); if (($st{1} == '#' && is_numeric(substr($st, 3, -1))) || !strcmp($st, ' ') || !strcmp($st, '>') || !strcmp($st, '<') || !strcmp($st, '"')) { if ($j) { $wa[] = array('word'=>$str, 'len'=>($j+1)); $j=0; $str =''; } $wa[] = array('word' => $st, 'sp' => 1); $i=$e; $j=0; break; } } /* fall through */ default: $str .= $data[$i]; $j++; } $i++; } if ($j) { $wa[] = array('word'=>$str, 'len'=>($j+1)); } return $wa;}function fud_wordwrap(&$data){ if (!$GLOBALS['WORD_WRAP'] || $GLOBALS['WORD_WRAP'] >= strlen($data)) { return; } $wa = fud_wrap_tok($data); $m = (int) $GLOBALS['WORD_WRAP']; $l = 0; $data = null; foreach($wa as $v) { if (isset($v['len']) && $v['len'] > $m) { if ($v['len'] + $l > $m) { $l = 0; $data .= ' '; } $data .= wordwrap($v['word'], $m, ' ', 1); $l += $v['len']; } else { if (isset($v['sp'])) { if ($l > $m) { $data .= ' '; $l = 0; } ++$l; } else if (!isset($v['len'])) { $l = 0; } else { $l += $v['len']; } $data .= $v['word']; } }}?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?