2015-04-22 4 views
2

Я новичок в PHP и задаюсь вопросом.php: как разбить действительно длинную строку

Я сделал чат-приложение, оно работает хорошо, но я не могу найти точно, что я хочу делать при поиске предыдущих потоков.

Пользователь может ввести из поля формы свое сообщение $. Так ...

$message = $_POST['message']; 

В поле ввода допускается не более 600 символов. Теперь, если пользователь сообщение ничего, кроме одной длинной всей строки, которая не содержит никаких пробелов, или пробела между любым из символов строки .. короткий пример ..

ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

Если он идет к определенной длине , это приводит к тому, что страница разбивается, создавая горизонтальный кадр прокрутки.

Как я могу взять $ message и отфильтровать его так, чтобы оно сломалось? Но также принимая во внимание, что большинство пользователей публикуют реальное сообщение $, а не случайно разбивают какие-либо действительные слова и т. Д., Возможно, что-то, что проверяет, является ли один из элементов массива $ message длиннее xxx количества символов, и если так сломать его? Или что это самый простой способ сделать это?

+0

Вы хотите обрезать строку? – frz3993

+1

это звучит как проблема макета. Скорее всего, вы разделите строку или исправьте проблему макета с помощью css? –

+0

Я открыт для любого действительного ответа. im не так много 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+, Firefox 6+, прошивкой 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 ++? –

Смежные вопросы