2012-03-30 6 views
1

PHPサーバ側のdiv内のテキストの行数を計算する

私は問題を抱えているという奇妙な問題に遭遇しました。私は文字の制限なしでデータベースから取得するテキストを持っています。私が達成しようとしているのは、そのテキストがdivの幅のCSSプロパティに置かれた場合の行の数です。

width:600px

奇妙に聞こえるが、私は彼らがページに印刷される前に、自分のスタイルをアレンジするつもりですので、私はこのサーバー側を管理する必要があるので、サーバ側で計算された行の数が10未満であれば、私は何かを手配しますある意味では、それが10以上の場合、私は別のやり方をするでしょう。これを得るための方法はありますか?

+0

Javascriptを使用できませんか? – gosukiwi

+1

行の量は、テキストのフォントタイプ、フォントサイズ、文字間隔などにも依存します。だから私はクライアント側で非常に多くの未知数を持っているので、このソリューションに従わないので、ブラウザで配信しレンダリングする前に行の量を正確に調べることができませんでした。 – Daxcode

+0

@Daxcodeが頭をアップしてくれてありがとう。フォントサイズ:14px、font-family:Arial。残念ながら@gosukiwi – Ali

答えて

1

チェックimagettfbbox()の機能です。文字列の幅をピクセル単位で計算します。最初に、テキストから新しい行を削除し、テキストの長さ全体を計算するよりも、600pxに神よりも重要です。行数を取得します。 しかし、これはお勧めできません。このためにCSSやjavascriptを使ってみてください。

+0

迅速な対応に感謝します。私は今それをチェックするつもりです! – Ali

0

このサーバー側では行いません。これに影響を与えるクライアント側の設定とオプションが数多くあり、すべてのケースでサーバー側のソリューションが適切に動作することはありません。 JavaScriptでは、レンダリングされた高さを線の高さで割った値に基づいて線の数を計算するのは簡単です。

var lines = $('#somediv').height()/$('#somediv').css('line-height'); 
関連する問題