2015-04-22 54 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 ++,会发生什么? –