2011-12-28 43 views
0

我該如何在php中編寫以下代碼?如何在php中創建指定數量的字符後換行符?

如果沒有空格的字符數超過75個,請創建換行符。

wordwrap函數似乎也計算空白,所以我不知道我可以使用它。我只想在我的$ description大於75個字符並且沒​​有空格時打破。

感謝您的幫助!

+0

你想打破中間詞? – 2011-12-28 07:31:32

+0

嘗試寫出你需要的東西,然後在遇到困難時提問。 – vdbuilder 2011-12-28 07:32:16

+0

如果這些數據以HTML格式顯示,那麼在UI級別處理它會不會更好?例如:您可以使用word-wrap屬性爲css並將其設置爲「break-word」 – dkulkarni 2011-12-28 07:35:30

回答

0

我假設你只想在一個空間上打破,而不是任何人物。

這不是很有效,但它應該工作。

$array = str_split($input); 
$iNumChars = 0; 
$sOutput = ""; 
foreach($array as $char) { 
if($char != " ") $iNumChars++; 
if($iNumChars > 75 && $char == " "){ 
    $sOutput .= "\n".$char; 
    $iNumChars = 0; 
}else{ 
    $sOutput .= $char; 
    } 
} 
+0

爲什麼第一個'$ iNumChars ++;'? – 2011-12-28 07:36:35

+0

爲什麼不呢?我必須補充一點。我還要如何保持數字不變? – 2011-12-28 07:39:01

+0

我不遵循你的邏輯。 [檢查出來](http://www.ideone.com/bTAp0),並將其與[您的版本](http://www.ideone.com/sGNRI)進行比較(示例文本適用於第1版) 。 – 2011-12-28 07:47:23

-1

查找字符串的長度。

如果strlen的(字符串)> 75

搜索字符串空白(strpos)

如果沒有空格發現,那麼你可以創建一個換行符

+0

不是一個真正的答案,她想排除計數中的空白,這是你沒有考慮到的。 – 2011-12-28 07:39:36

+0

Okk。我糾正了我的自我。首先搜索字符串中的空白位置。如果pos大於75,則在75個字符後創建換行符。 – Shraddha 2011-12-28 07:44:02

0

希望這會工作,嘗試:

// $str is your string 
$explode = explode(" ", $str); 

foreach($explode as $key=>$val){ 
    if($key <= '75'){ 
     $join_arr = " " . $val; 

     if($key == '75'){ 
      // Line Break Here 
      $join_arr .= "<br>"; 
     } 

     echo $join_arr; 
    } 
    else{ 
     exit(); 
    } 
} 

只提供76個字符。

+0

我認爲這是我需要的。明天我會試一試,讓你知道。我一直在努力尋找最後一個小時的解決方案,現在已經過去了我的就寢時間。 :) 謝謝! – Andi 2011-12-28 08:37:32

+0

你的歡迎:) – 2011-12-28 08:50:41

相關問題