最近、HTML を含む投稿コンテンツ (投稿の抜粋/要約など) を切り詰める必要がありました。これは通常、投稿の抜粋を手動で入力することによって行われますが、この特定のプロジェクトでは、自動的に行う必要があります。
文字数を取得してコンテンツをサブストリング化する単純なメソッドを作成しようとしました。ただし、HTML タグ/属性内のコンテンツが切り詰められる可能性があるため、これは常に機能するとは限りません。
例えば:
<?php
function truncateText($string, $chars) { return substr($string, 0, $chars); }
$content = "<div><p>some content</p><a href='http://google.com'>Let's go to google</a></div>";
echo truncateText($content,40); //returns "<div><p>some content</p><a href='http:/"
ご覧のとおり、壊れた HTML が返され、適切にレンダリングされません。HTML タグを保持したまま、コンテンツを切り詰めるにはどうすればよいですか?