2011-03-13 78 views
1

我有一個PHP腳本,回聲的一個字符串到一個html div如何適合文本塊到div?

div的寬度只有50個字符的空間,所以如果字符串更長,我不得不將它切成多少行。

所以我可以使用strlen來查看我應該在哪裏切割字符串並回顯<br>。問題是,我不想在一個字中間切斷它。

我有一個解決方案,但似乎我已經過分複雜化了。

感謝,

+3

這是CSS的工作,我相信 – 2011-03-13 10:11:54

+0

http://stackoverflow.com/questions/717328/how-to-explode-string-right-to-left首先你把它,然後你用空格和流行爆發,最後一個字。 – DanMan 2011-03-13 10:26:40

+0

您也可以使用'textarea',並使用CSS使其看起來像普通文本:http://jsfiddle.net/dPnDp/ – 2011-03-13 10:27:06

回答

8

只是一個屬性class="wrapping"添加到你想有這種行爲的股利,而這個CSS添加到您的HTML頁面:

div.wrapping { 
    word-wrap: break-word; 
} 
0

有在substr的PHP文檔頁面的一些例子。複製/粘貼一對夫婦:

$str = "aa bb ccc ddd ee fff gg hhh iii"; 
echo substr(($str=wordwrap($str,$len,'$$')),0,strpos($str,'$$')); 

function _substr($str, $length, $minword = 3) 
{ 
    $sub = ''; 
    $len = 0; 

    foreach (explode(' ', $str) as $word) 
    { 
     $part = (($sub != '') ? ' ' : '') . $word; 
     $sub .= $part; 
     $len += strlen($part); 

     if (strlen($word) > $minword && strlen($sub) >= $length) 
     { 
      break; 
     } 
    } 

    return $sub . (($len < strlen($str)) ? '...' : ''); 
} 
0

寫入功能

// Original PHP code by Chirp Internet: www.chirp.com.au 
// Please acknowledge use of this code by including this header. 
function myTruncate($string, $limit, $break=".", $pad="...") { 
    // return with no change if string is shorter than $limit 
    if(strlen($string) <= $limit) return $string; 
     // is $break present between $limit and the end of the string? 
     if(false !== ($breakpoint = strpos($string, $break, $limit))) { 
      if($breakpoint < strlen($string) - 1) { 
       $string = substr($string, 0, $breakpoint) . $pad; 
      } 
     } 
return $string; 
}