| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Текстовые поля |
| Автор: Spectre 21.7.2006, 09:52 |
| Проблема вот в чем.. Я создал БД там создал таблицу в ней поля. Id, title, body - таблица для хранения статей.. Когда я пробую забить в базу что нибудь через интерфейс phpMySQL то он пропускает ентеры. То есть приходится писать вручную в нужном месте <br>... Так вот вопрос. Если я сделаю на страничке php форму ввода новой статьи, то и в textarea придется вписывать <br> и другие форматирования? И второй вопрос. При выводе на экран статьи все хорошо, но когда я в титле хочу отобразить например первых 50 символов статьи, при наведении на ссылку, то там я увижу и html-теги. В общем мне надо сделать так что бы я нормально вводил текст без <br> и он потом нормально отображался. Помогите. |
| Автор: skyboy 21.7.2006, 10:02 |
| Spectre, я НЕ знаю, как происходит ввод в базу через указанный интерфейс, но HTML - броузерами перевод строки игнорируется. Потому у тебя текст из базы вполне может идти с переводами строк(ентерами), но т.к. браузер ожидает для перевода строки специального тега(<br>), то переход на новую строку не происходит. |
| Автор: Ignat 21.7.2006, 10:03 |
| Данный вопрос к БД имеет очень косвенное отношение. Скажите, на каком языке пишите и я перемещу в нужный раздел. |
| Автор: skyboy 21.7.2006, 10:05 |
| варианты: - выводить текст статьи между тегами <PRE> и </PRE>, или(что лучше) использовать соответствующие стили - забыть о принудительном переходе. Касательно первых 50 символов - что тебе мешает экранировать теги? |
| Автор: Spectre 21.7.2006, 10:09 |
| Пишу на php... skyboy, видел как то эти теги, но не знаю что они значать. Можете пояснить? И экранировать тэги, как это? |
| Автор: skyboy 21.7.2006, 10:14 |
| под экранированием я имел в виду: - либо выдирать всё, что похоже на тег. Тут тебе регулярные выражения в помощь. - либо выводить как HTML. Тогда браузер сам на даст увидеть теги. <PRE> выводит текст моноширинным(кажется) шрифтом с тем форматированием(переносы строк, спецсимволы), которое имеет текст. Но лучше поискать соотвествующий стиль, если есть. А ещё лучше - справочник открыть. Например, http://wdh.suncloud.ru/contents.htm ------------- Ссылку исправил. |
| Автор: ZlojEzh 21.7.2006, 10:22 | ||
| 1. варианты: - str_replace("\n","<br>",$str) - при выводе - REPLACE(`field_name`,"\n",'<br>') - при выборке из БД (в строке запроса в PHP надо писать '\\n') - <pre></pre> (как и советовал skyboy) - 2. substr(strip_tags($str),0,50) если надо, чтоб слова не обрывались на середине - можно использовать:
а тему, имхо, стоит перенести в PHP для начинающих |
| Автор: Spectre 21.7.2006, 10:22 |
| Вот... создал статейку. в Базу забил без <br> вручную... теперь в alt ссылки все нормально отображается, а если просто на экран вывести, то без энтера. Пробовал вывести как <pre>{$row["body"]}</pre> он мне испортил вид странички, и при этом кажется так и не сделал перевода... Он растянул первый абзац в одну строчку. вот что он сделал. А по ссылке сейчас посмотрю. |
| Автор: igorold 21.7.2006, 11:19 |
| вставляй <br> - там где надо переход на новую строку ... тебе уже советовали ... |
| Автор: Ignat 21.7.2006, 11:41 |
Хотелось бы услышать ответ автора. Подразумевать, что MySQL используется только ПХП нельзя. |
| Автор: Spectre 21.7.2006, 15:23 |
| Тут больше связано с MySQL помоему. Вывод на экран. Кстати без тегов все хорошо отображается если выводить в <textarea> но мне не в ней надо... Ведь должно же что то быть. Справочник попробовал открыть, нужный раздел в разработке. Пробовал вводить через форму с помощью техтареи, ничего не вышло... Так же отображает без энтеров при выводе... |
| Автор: Ignat 21.7.2006, 15:26 | ||
|
| Автор: Spectre 21.7.2006, 15:29 |
| Я его указал уже выше - PHP |
| Автор: Ignat 21.7.2006, 15:59 |
Прошу прощения, не заметил. |
| Автор: Spectre 21.7.2006, 16:38 | ||
Проблема решена всего с помощью двух строчек добавленных в нужном месте
|
| Автор: Ignat 21.7.2006, 16:42 |
| Spectre, достаточно одной второй, тем более в ней лишние кавычки. |
| Автор: Spectre 21.7.2006, 16:54 |
| нет.. я пробовал сразу вставить в источник $row["ячейка"] и он сообщал об ошибке... пришлось сделать так. Спасибо всем. P.S. Действительно. Убрал кавычки и подставил запрос из Базы. Все сработало. |