function TxtFormat($txt)
{
if((stripos($txt, "\n") > 0))
{
return $txt;
}
$tags = [ '!', '!', '。', '?', '?' ];
$jishu = 0;
$lianxu = 30;
$insertBr = "\r\n\r\n ";
$isFlag = false;
$lastchar = '';
$tempChar = '';
$sb = " ";
$txt_count = mb_strlen($txt,mb_detect_encoding($txt, array('GB2312','GBK','UTF-8')));
for($i = 0; $i < $txt_count; $i++)
{
$tempChar = mb_substr($txt, $i, 1, 'utf-8');
if ($tempChar == '\r' || $tempChar == '\n' || $tempChar == ' '
|| $tempChar == ' ')
{
continue;
}
++$jishu;
if ($tempChar == '“')
{
$isFlag = true;
$sb_count = mb_strlen($sb, 'UTF-8');
if(0 < $sb_count)
{
$lastchar = mb_substr($sb, $sb_count-1, 1, 'utf-8');
}
else
{
$lastchar = '0';
}
if ($lastchar != '0' && (($lastchar != ' ' && $lastchar != ':' && $lastchar != ',' && $lastchar != ',') || $lastchar == '”'))
{
$jishu = 0;
$sb .= $insertBr;
}
$sb .= $tempChar;
continue;
}
if ($isFlag && $tempChar == '”')
{
$isFlag = !$isFlag;
$sb .= $tempChar;
continue;
}
$sb .= $tempChar;
foreach ($tags as $tag)
{
if ($tempChar == $tag)
{
if (($isFlag == false && $jishu > $lianxu) && $i + 1 < $txt_count
&& mb_substr($txt, $i+1, 1, 'utf-8') != '”')
{
$sb .= $insertBr;
$jishu = 0;
$isFlag = false;
break;
}
}
}
}
return $sb;
}
php格式化文本(换行)
最新推荐文章于 2022-05-17 17:26:12 发布