2015-04-22 51 views
2

我是PHP新手,有一個問題。php:如何分割一個非常長的字符串

我做了一個類似聊天的應用程序,它運行良好,但我似乎無法找到我想要在搜索以前的線程中完成的操作。

用戶可以從表單字段輸入他們的$消息。所以...

$message = $_POST['message']; 

輸入框最多允許600個字符。現在,如果用戶帖子只是一個長整個字符串不包含任何空格,或任何字符串中的字符..簡單的例子之間的空間..

ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

如果這樣下去,到一定的長度它會通過創建一個水平滾動框架來導致頁面中斷。

如何獲取$消息並對其進行過濾,以便將其分解?但也考慮到大多數用戶發佈真正的$消息,而不是意外地分割任何有效的單詞等可能是檢查以查看是否有一個$ message數組元素長於xxx字符長度,如果所以打破它?或者最簡單的方法是什麼?

+0

要截斷字符串? – frz3993

+1

這聽起來像是佈局問題。你會喜歡拆分字符串還是用css修正佈局問題? –

+0

我接受任何有效的答案。即時通訊不是一個CSS大師,所以任何情況下,任何情況下,將不勝感激 – cjackson

回答

0

當然,我在網上發現這個帖子後才找到答案。答案是把這個變成我的CSS的身體:

overflow-x:hidden; 
word-wrap: break-word; 
1

,你應該把$message內容的element內有class集打破長行(word-wrap: break-word):


即:

.PHP

<?php 

if(isset($message = _$POST['message'])){ 
$message = _$POST['message']; 

echo "<div class='message'>$message</div> 

} 

的.css

.message { 
    word-wrap: break-word; 
/* Be VERY careful with this, breaks normal words */ 
    word-break: break-all; 

-webkit-hyphens: auto; 
    -moz-hyphens: auto; 
     hyphens: auto; 
} 

在Internet Explorer 8以上版本,火狐6 +,iOS 4.2的,Safari瀏覽器5.1+和Chrome 13+以上的作品。

CODEPEN DEMO

0

我認爲最簡單的方法

<?php 
$f = 'ffffffffffffffffffffffffffffffffffffffffffffffffffffff'; 
$row = 3; 
$n = ceil(strlen($f)/$row); 
for($i = 0; $i < $row; $i++){ 
    echo substr($f, 0, $n) . '<br/>'; 
} 
?> 
+0

這是'css'問題,你不會用你的代碼解決。如果設備是320 * 240並且它的字體設置爲Large ++,會發生什麼? –