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, '&nbsp;') || !strcmp($st, '&gt;') || !strcmp($st, '&lt;') || !strcmp($st, '&quot;')) {						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 + -
显示快捷键?