2012-04-11 2 views
0

Ниже обзор того, что я имею дело с: enter image description herePHP/MySQL Предельные символы

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

не может быть прокруткой, поэтому он должен быть видимым и не может пройти мимо этого белого.

Мой вопрос: как я могу ограничить текст тела?

  • Если заголовок большой и идет вниз к двум линиям, и есть картинка, то для того, чтобы остаться в линиях и не пройти белый он должен быть ограничен определенным количеством символов ,

  • Но другой пользователь может решить не иметь изображения и сохранить заголовок в одной строке, чтобы у пользователя было больше текста для записи, поэтому предел должен отличаться.

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

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

+0

Вы создаете изображение? веб-страница? Эл. адрес? PDF? ... –

+0

Я не уверен, понимаю ли вы, что вы имеете в виду. Изображение - это то, что они хотят загрузить. Извините, если я сформулировал это неправильно. – Drew

+0

Какой конечный выход? –

ответ

1

его не только text вам нужно limit но и так, что влияет на стиль вашей веб-страницы

Чтобы ограничить количество строки .. я бы использовать форму сценария здесь php trim a string

function trim_word($str, $length, $suffix = '...') 
{ 
    $len = strlen($str); 

    if ($len < $length) return $str; 

    $pattern = sprintf('/^(.{%d,}?)\b.*$/', $length); 
    $str = preg_replace($pattern, '$1', $str); 
    $str = trim($str); 
    $str .= $suffix; 

    return $str; 
} 

он обрезает текст и гарантирует, что он всегда заканчивается словом ...

Вы можете использовать http://phpthumb.sourceforge.net/ для создания thumbnail фиксированного размера все, что нужно сделать это установить нужную высоту и ширину

2

Используйте это для любого ввода пользователем для добавления текста. Он может ограничивать символы, которые они используют, просто изменяет значение 250.

<script> 
     function countChar(val){ 
           var len = val.value.length; 
           if (len >= 250) { 
            val.value = val.value.substring(0, 250); 
           }else { 
            $('#charNum').text(250 - len); 
           } 
     }; 


    </script 


<textarea id="field" name="description" onKeyUp="countChar(this)"></textarea> 
1

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

Одна вещь, которую я, вероятно, сделаю, это найти максимальное количество символов, которые вам удобны на странице, и использовать substr на выходе из базы данных, чтобы гарантировать, что он больше не отображает больше.

http://php.net/manual/en/function.substr.php

Вы могли бы иметь «более» ссылку, которая, как посетитель может читать больше, если они хотят, но это не нарушает макет. Я бы использовал базовые инструкции if для логики (если изображение существует, обрезайте текст на это, если нет и т. Д.).

Надеюсь, что это поможет.

1

Surround всей вещь с контейнером DIV фиксированной высоты, вы желаете без заполнения и внутри этого места другой внутренний div без поля и фиксированной высоты, а затем, когда пользователь меняет содержимое, создайте функцию javascript, чтобы проверить, является ли внутренний div < контейнером div; и если нет, то не позволяйте пользователю делать это изменение - таким образом вы непосредственно атакуете проблему.

<script> 
function checkDivs() { 
if(inner.style.height >= container.style.height) { 
//prevent change 
} 
} 
</script> 
<div id='container'> 
    <div id='inner'> 
    //User-defined content 
    </div> 
</div> 

Эта функция будет приложена к любой GUI пользователь будет редактировать содержание до конца, а о том, как предотвратить изменения, я должен был бы знать больше о вашей программе.

+0

Умный! Это сложнее, чем другие решения, и требуется немного волшебства, чтобы вырваться, но он проверяет то, что OP действительно хочет знать, вместо того, чтобы использовать число символов в качестве прокси-сервера и надеяться, что все получится в порядке (хотя это пропорционально разнесенный шрифт). – octern

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