htmlタグが入った内容の文字を丸める
2014/07/03
phpである文字列が○文字以上だった際、
省略してお尻に「……」をつけたいという場合、
mb_strimwidth($str,開始位置,終了位置,'丸めたあとの文字')
を最近使う。
■リファレンス
http://jp2.php.net/mb_strimwidth
ただ、今日困ったのがhtmlタグが入っている変数を
出力した際にちゃんと文字を丸めてくれない。恐らくタグの部分もカウントされているからっぽい。
で、やりたい事は、
・文字を丸めたい
・aタグやfontタグはほっといて文字列だけ丸めたい
というもの。
指定文字以上なら書き換えるということで解決した。
■ソース
<?php
error_reporting(E_ALL & ~E_NOTICE);
extract($_REQUEST);
$str = '<p><font size="3" color="red"><a href="http://taitan916.hateblo.jp/" target="blank">リンクリンクリンクリンク</a></font></p>';
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transtional//EN" "http://www.w3c.org/TR/html4/loose.dtd">
<meta http-equiv="content-type" content="text/html"/>
<meta cherset = "UTF-8">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(function(){
var str = $('#str').text();
alert(str);
if (str.length > 5) { //丸める対象の文字が5文字以上なら
$('#str').text(str.substring(0,5) + "…"); //丸めて後ろに…を付ける
}
});
</script>
<html lang="ja">
<head>
<title>文字を丸める</title>
</head>
<body>
<h1>文字を丸める</h1>
丸められない。途中でタグがとれて変になる。⇒<?php // echo mb_strimwidth($str,0,5,'…');?><br>
<span id="str"><?php echo $str;?></span>
</body>
</html>
関連記事
jQueryで指定した可変(レスポンシブ)要素のposition / width / heightを取得する方法
jQueryで指定した要素のposition(leftやtop) / width ...
jQueryの日付&時間のピッカー(bootstrap-datetimepicker)について
日付のピッカーはよく見るけど、時間のピッカーはあまり見ないので、普通のセレクトメ ...
jQueryのプラグインで簡単にイメージスライダーを作成(bxslider)
画像のスライダーを作る時に便利なプラグインであるbxslider。簡単に使えるし ...
CodeIgniter4 & jQueryを用いて同一サイト内でajax通信する方法
CodeIgniter4.4.4 & jQueryを用いて同一サイト内で ...
クロスドメインな状況でiframeがIEのみ挙動がおかしくなる場合
iframeで別のドメインのサイトを表示させた場合に、firefoxやchrom ...