Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка теста 
:(
    Опции темы
nepster
Дата 2.3.2011, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 26.4.2009

Репутация: нет
Всего: нет



Получаем тест, он обрабатывается через nl2br(); (замена перехода на след. строку на <br/>)

Заметил вот такую вещь, когда вместе с тестом поступает html код к примеру таблица, функция так же добавляет <br/>




Код

    <tr valign="top"><br />
<td style="border: #808080 1px solid" width="33%">500 - 999</td><br />
<td style="border: #808080 1px solid" width="33%">6%</td><br />
<td style="border: #808080 1px solid" width="33%">-</td></tr><br />
<tr valign="top"><br />
<td style="border: #808080 1px solid" width="33%">1 000 - 1 999</td><br />
<td style="border: #808080 1px solid" width="33%">9%</td><br />
<td style="border: #808080 1px solid" width="33%">-</td></tr><br />



Возможно ли сделать, так что бы в простом тексте переходы заменялись на <br/>, а в html коде нет. К примеру поступает что то такое:


    
Код

<tr valign="top"><br />
Текст текст Текст текст Текст текст Текст текст Текст текст Текст текст 
Текст текст Текст текст Текст текст Текст текст Текст текст Текст текст 
 
 
<table>
<tr valign="top">
<td style="border: #808080 1px solid" width="33%">12 000</td>
<td style="border: #808080 1px solid" width="33%">21%</td>
<td style="border: #808080 1px solid" width="33%">-</td></tr>
</table>
 
 
Текст текст Текст текст Текст текст Текст текст Текст текст Текст текст 
Текст текст Текст текст Текст текст Текст текст Текст текст Текст текст 
 

PM MAIL   Вверх
Gold Dragon
Дата 3.3.2011, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



вообще-то nl2br() для обработки текста, а не HTML-кода... Для твоих целей скорее всего нужно писать свою функцию и скорее всего использовать регулярку...

Добавлено через 34 секунды
хотя что-то я малость не понимаю зачем HTML-код пропускать через nl2br() 


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
nepster
Дата 3.3.2011, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 26.4.2009

Репутация: нет
Всего: нет



окно формы ввода пользователя, он может вводить как текст так и html код. А как примерно должна выглядеть логика ?  

Определить <> если это html, то не производить замену, а если html то произвести? 
PM MAIL   Вверх
Gold Dragon
Дата 3.3.2011, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



вообще-то позволять пользователю вводить HTML-код очень опасно для безопасности. Но коль ты так решил, то делай проще.. Если это HTML-код, то пусть пользователь заключит код в пользовательские тэги, например
[codehtml]...что-то....[/codehtml]
когда получишь данные из формы. то всё что не в этих тегах очищай и применяй смело функцию


Это сообщение отредактировал(а) Gold Dragon - 3.3.2011, 15:32


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
GZep
Дата 3.3.2011, 17:17 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: 8
Всего: 32



Я бы тут посоветов использовать готовый веб-редактор html+тект, чтобы не возиться с реализацией и обработкой типа nl2br и т.п.
Ну и все равно лучше вряд-ли получится сделать. Посмотрите хотя бы вот этот: http://tinymce.moxiecode.com/


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
nepster
Дата 3.3.2011, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 26.4.2009

Репутация: нет
Всего: нет



Gold Dragon

Это поле в админке для админа, не все можно реализовать бб кодами, к примеру стиль дописать или еще что, потребовалось помощь html. 



GZep

о нет спасибо, я больше с таким не связываюсь, я уже с такими редакторами поработал, Вы видели на выходе какой код получается ? 
PM MAIL   Вверх
nepster
Дата 3.3.2011, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 300
Регистрация: 26.4.2009

Репутация: нет
Всего: нет



Код

$news_modules_standart = preg_replace( '#\<table (.*?)\</table\>#si', '<table $1</table>', $news_modules_standart );



подскажите пожалуйста возможно ли к $1 прилепить какуе то функцию? типа 

nl2br_revert($1)
PM MAIL   Вверх
ksnk
Дата 4.3.2011, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Цитата(nepster @  3.3.2011,  19:51 Найти цитируемый пост)
подскажите пожалуйста возможно ли к $1 прилепить какуе то функцию? типа 

nl2br_revert($1) 

можно. 
Можно почитать про модификатор e в php-регулярках. А можно почитать про функцию preg_replace_callback


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0790 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.