回答編集履歴

2

修正

2017/03/25 08:31

投稿

退会済みユーザー
test CHANGED
@@ -24,6 +24,8 @@
24
24
 
25
25
  $tmp[] = '...';
26
26
 
27
+ break;
28
+
27
29
  }
28
30
 
29
31
  }

1

追記

2017/03/25 08:31

投稿

退会済みユーザー
test CHANGED
@@ -8,25 +8,35 @@
8
8
 
9
9
  {
10
10
 
11
- $length = mb_strlen($str);
11
+ $tmp = [];
12
12
 
13
- if ($len < $length) {
13
+ $arr = explode(PHP_EOL, $str);
14
14
 
15
- return mb_substr($str, 0, $len) . '...';
15
+ foreach ($arr as $i => $line) {
16
16
 
17
- } else {
17
+ if ($i < $len) {
18
18
 
19
- return $str;
19
+ $tmp[] = $line;
20
+
21
+ }
22
+
23
+ if ($i == $len) {
24
+
25
+ $tmp[] = '...';
26
+
27
+ }
20
28
 
21
29
  }
30
+
31
+ return implode(PHP_EOL, $tmp);
22
32
 
23
33
  }
24
34
 
25
35
 
26
36
 
27
- $str = 'あいうえお';
37
+ $str = "あいうえお\nあいうえお\nあいうえお\nあいうえお\nあいうえお";
28
38
 
29
- echo truncate($str, 3);
39
+ echo nl2br(truncate($str, 3));
30
40
 
31
41
 
32
42