文字列を取り出して特定の点で切り取ろうとしています(基本的には選択したテキストのプレビューを提供します)が、画像や類似の内容がこのためにBBCodeを使用しています)、PHPでこれを行う簡単な方法があるのだろうかと思いました。要素を切り捨てずに半分の文字列を分割する
例:
$content = "blah blah blah such and such [img]imagehere[/img] blah blah";
$preview=unknownfunction($content); //cuts off at approx. 40 chars
//do not want this:
$preview="blah blah blah such and such [img]image";//this is bad because half of image is gone
//want this:
$preview="blah blah blah such and such [img]imagehere[/img]"; //this is good because even though it reached 40 chars, it let it finish the image.
これを行う簡単な方法はありますか?または、少なくとも、プレビュー要素からすべてのタグを削除することはできますが、この機能を使用して単語を切り捨てないようにしたいと思います。このうち
最初に「bbcoded」のコンテンツを削除し、残りの単語を数えて分割します(たとえば、前回チェックしたときのMyBBフォーラムなど) –
これは頻繁に回答しているような気がします。 http://stackoverflow.com/a/9202571/383402とその他の回答があります。 – Borealid
BBタグのリストを取得できる場合は、preg_match_allを使用して文字列を分割し、その後で計算を行うことができます。さもなければ '[' '] '文字を使って正規表現を使うことができますが、認識できないタグをどのように解析するのか分かりません。 – inhan