タグを置換します。 $separators = array('。','.','.',"\n"); //改行を削除、エンティティ文字を一旦適切な文字に。 $content = html_entity_decode(str_replace(array("\r\n","\r","\n"), '', $content)); //スペース削除するならします。 if ($remove_space == '1') $content = str_replace(array(" "," ","\t"), '', $content); //半角変換するならします。 if ($zen2han == '1') $content = mb_convert_kana($content,'KVa'); //BRタグは\nに一旦変換し、タグ除去 $content = strip_tags ( preg_replace('/\/i', "\n", $content) ); //指定文字数まで切り出し、末尾文字の位置を取得。指定文字以内での最大文字数を取得。 $o = mb_substr($content,0,$num); $pos = -1; foreach ($separators as $sep) { $t = mb_strrpos($o,$sep); if ($pos < $t) $pos = $t; } //もし最大文字数が得られない場合、最初の末尾文字数までを取得。場合によっては全文字数となる。 if ($pos <= 0) { $pos = mb_strlen($content); foreach ($separators as $sep) { $t = mb_strpos($content,$sep); if ($pos >= $t && $t > 0) $pos = $t; } } //取得した最大文字数で切り出し。文字数判定の為に一旦エンティティから通常バイト文字に変換したものを再度最後に戻す。合わせて末尾判定のための改行コードも削除。 $output = htmlspecialchars (str_replace("\n",'',mb_substr($content, 0,$pos + 1))); return $output; ?>