? 發問時間: 電腦與網際網路程式設計 · 1 0 年前

從資料庫撈出來的文章遇到標點符號提前折行的問題

例如我的html,文章排版為...

總統罷免案,藍綠今天揭開第一波戰火。

立法院今天舉行談話會,決定要從明天起

,召開18天的臨時會。國親也靠著人數優

勢,表決通...

---------------------

但是在瀏覽器一定會變成這樣

總統罷免案,藍綠今天揭開第一波戰火。

立法院今天舉行談話會,決定要從明天

起,召開18天的臨時會。國親也靠著人數

優勢,表決通...

就是這兩行

立法院今天舉行談話會,決定要從明天

起,召開18天的臨時會。國親也靠著人數

因為明天起,  逗號正好在行尾,但跟WORD一樣,HTML的文字排版遇到行尾是標點浮號一定會提前折行(就是第一行的”起”會跟著,跑到第一行,

除非我手調ctrl+enter),可是我如果用<? echo $A[\'content\']; ?>

網頁瀏覽的文章也會遇標點折行,我也無法事先ctrl+enter讓文章換行

我要如何解決??連YAHOO新聞的文章

總統罷免案,藍綠今天揭開第一

波戰火。立法院今天舉行談話

會,決定要從明天起,召開18天

談話會這邊也是提前折行,無法解決嗎??

已更新項目:

求求 咖啡貓或其他高手給我範例!!(原諒我是新手)

2 個已更新項目:

我用了

if (mb_strlen($String, 'utf-8') > 15

{

$String = mb_substr($String, 0, 19,'utf-8');

} echo $String;

使用這方法,

卻只會出現String整段文章的前19個字,

後面的文字就此消失,

請問還有其它方法可以解決我的問題嗎??

3 個解答

評分
  • 1 0 年前
    最佳解答

    $out = '';

    $charLen = 10;

    for($index=0; $index<mb_strlen($String, 'utf-8'); $index += $charLen )

    $out .= mb_substr($String, $index, $charLen, 'utf-8').'<br>';

    echo $out;

    2006-06-17 15:36:00 補充:

    同意~魚兒來

    2006-06-24 11:59:09 補充:

    <style type="text/css">pre { white-space: pre-wrap; word-wrap: break-word;}</style>

    參考資料: 自己的經驗
  • 1 0 年前

    折行是Browser做的動作

    假如不想讓Browser做折行動作

    就用<pre></pre>和mbstring去顯示你預先排好的文字

  • 1 0 年前

    雖然不知道為什麼,但是運用mbstring 函數加上限制每一次顯示的字數,理論上可行的. 也就是先將所有文字先讀到 buffer 當中.計算一次顯示出來的字數. 分別顯示出來.

    這樣子理論上就能夠顯示了.(固定字數強迫換行)

還有問題?馬上發問,尋求解答。