2

データベースから取得した最大 400 文字の文字列を表示するという問題がありますが、この文字列には HTML エンティティを含める必要があります。

偶然にも、クライアントは 400 番目の文字を終了 P タグの真ん中に配置する文字列を作成したため、タグが強制終了され、その後のコードで他のエラーが発生しました。

この終了 P タグを完全に削除することをお勧めします。「...続きを読む」リンクが末尾に付いているため、既存の段落に添付するとよりきれいに見えます。

これがすべての HTML エンティティの問題をカバーするための最良のアプローチは何でしょうか? エラーのある HTML タグを自動的に閉じたり削除したりする PHP 関数はありますか? コード化された回答は必要ありません。指示だけで大いに役立ちます。

ありがとう。

4

3 に答える 3

0

段落またはコンテンツの最後の単語を取って削除しない理由、単語が完全な場合は削除し、完全でない場合も削除し、コンテンツがまだクリーンであると確信している場合は、コードの例は次のようになります。

while($row = $req->fetch(PDO::FETCH_OBJ){
  //extract 400 first characters from the content you need to show
  $extraction = substr($row->text, 0, 400);
  // find the last space in this extraction
  $last_space = strrpos($extraction, ' ');
  //take content from the first character to the last space and add (...)
  echo substr($extraction, 0, $last_space) . ' ...';
}
于 2013-06-19T02:17:42.820 に答える
0

最後の壊れたタグを削除してから、strip_tags

$str = "<p>this is how we do</p";
$str = substr($str, 0, strrpos($str, "<"));
$str = strip_tags($str);
于 2013-06-19T03:03:11.247 に答える