アプリ版:「スタンプのみでお礼する」機能のリリースについて

すいません質問です。
某掲示板で質問させていただき、返事をもらいましたが、
答えがわからなかったためここで質問させてもらいます。

今運営しているPCサイトの携帯版を作ろうと思っています。
携帯用にするとき、元のサイトのサイズが大きいため分割する必要があると思い自分なりにやってみましたが、
分割のやり方が悪いため、htmlタグの途中で切れたりして変になってしまいます。

//1ページあたりの文字数(ページのサイズ)
$pagesize=1000;
元の文字列をページサイズで割り、合計のページ数を出す
$totalpage=ceil($str/$pagesize);
//↓1ページ目の場合は、テキストが0~1000までの部分文字列になる
$text=mb_substr($str,($page-1)*$pagesize,$pagesize);

上記のようにやってみたのですが、下記のようになったりします。
----------------------------------------------------
nページ目のテキスト終わり部分

・・・・・・・・
<a href="http:
---------------------------------------------------
n+1ページ目のテキスト始め部分

"//hoge.com">ホゲドットコム</a>
---------------------------------------------------

タグの部分で分割させないためには、
1000文字を超えたところで一番最初に出てくる \n で分割したりすればいいと思うのですが、
それはどのようにやればいいのでしょうか。
アドバイスお願いします。
___________________________________________________________
上記のように質問させていただきました
すると
↓のようなレスをいただきました。
正規表現で分割
/^.{1000}.*?\n/s 

____________________________________________________________

そこで

↓1000はページサイズ
print_r(preg_split("/^.{1000}.*?\n/s",$str));
とやってみましたが、
[1]の部分に全部はいってしまい、分割されていません。

どうすればいいのでしょうか
助けてください。

A 回答 (1件)

こんなのでどうでしょう?


10文字で、チェックしてますが。

<?php
$s = "aaaaaaaaaaaaaaa
bbbbbbbb
cc
ddddddddddd
eeeeeee";

while(preg_match('/^(.{10}[^\n]*\n)(.*)/s', $s, $a)) {
echo "{$a[1]}\n\n";
$s = $a[2];
}
echo $s;
?>
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!